2015-11-18 20 views
7

gulpを使用して私のリアクションアプリをブラウズして、NODE_ENVを設定するように努めています。だから、私はリアクション警告、コンソールでのエラー報告、さらにはアドオンのperfのようないくつかの機能を無効にする私のコードを削除することができます。Chromeの反応を無効にする生産のためのDevTools

それは素晴らしいです。私は論文の典型的な条件があるかどうかを確認するために「製造」のために私のapp.jsで検索する場合:

if("development" !== "production") { 
    ... 
} 

私が言ったように、うまく動作しているようですが、そこは何もありませんので。

しかし、Chromeの開発ツールのタブがすべての反応コンポーネントと反応す​​ることがわかりました。開発用ウェブサイトの場合と同様です。 Chromeの開発ツールでこのタブを無効にするにはどうすればよいですか?

はここに私の一気の作業です:

var production = process.env.NODE_ENV === 'production' ? true : false; 
var environment = process.env.NODE_ENV ? process.env.NODE_ENV : 'dev'; 

... 

var bundler = browserify({ 
    debug: !production, 

    // These options are just for Watchify 
    cache: {}, packageCache: {}, fullPaths: true 
}) 
.require(require.resolve('./dev/client/main.js'), { entry: true }) 
.transform(envify({global: true, _: 'purge', NODE_ENV: environment}), {global: true}) 
.transform(babelify) 
.transform(reactify); 

var start = Date.now(); 
bundler.bundle() 
    .on('error', function (err) { 
     console.log(err.toString()); 
     this.emit("end"); 
    }) 
    .pipe(source('main.js')) 
    .pipe(gulpif(options.uglify, streamify(uglify()))) 
    .pipe(gulpif(!options.debug, streamify(stripDebug()))) 
    .pipe(gulp.dest(options.dest)) 
    .pipe(notify(function() { 
     console.log('Built in ' + (Date.now() - start) + 'ms'); 
    })); 
}; 
+1

Chromeの実際のプラグインですか?なぜあなたはそれをしたいのですか?あなたのjsは敏感なものを含んではいけません。なぜChromeは、ウェブサイトからChromeのものを変更することを許可しますか?それについて考えてみましょう。これは、javascriptを使用してユーザーのブラウザで情報をオン/オフにすることができる、大規模なセキュリティ上の欠陥です。 –

+1

ええ、クロムプラグイン。 ユーザーは認証されていないと何もすることはできません。すべての要求は、強力な秘密鍵(1024文字)を持つサーバー側のトークンでチェックされます。 私の質問は、それは可能ですか?私の知っている限り、それはここで私はどのように、なぜそれは私のギャルの仕事では動作していないかを尋ねているので、それに行うことができます。 – Poirette

+0

ああ、グローバルな 'React'や' require'がなければ動作しませんが、特定の設定についてはわかりません。 –

答えて

9

のGithub上の問題によると、あなたはそれを防ぐためにロードされる反応前に、単一のJavaScriptの行を実行して追加することができます。

その後

<script> 
window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject = function() {} 
</script> 

#191 of react-devtoolsから、あなたはあなたのサーバー側のレンダリングに以下のようなSTHを行うことができ、そのように、あなたの環境条件でこれをラップ検討することができます。のは、(旧翡翠として知られている)パグを言ってみましょう:

#{process.env.NODE_ENV == 'production' ? "window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject = function(){}" : ""} 

しかし、まだあなたのサーバーに戻ってビジネスロジックや機密データを置くことをお勧めだろう。

+0

次のエラーが表示されます:未定義の 'inject'プロパティを設定できません –

+1

'chrome:// extensions /' "React Developer Tools"が有効になっているかどうか確認してください – PETEroid

+1

@LoveTrivediあなたはこれをサーバーを通してレンダリングしていますか?ノードオブジェクトにはウィンドウオブジェクトがありません。 '(ウィンドウ){...}' にスニペットを入れてください –

関連する問題