2016-11-14 4 views
1

から必要とします。私はUSE_MOCK=true npm run devまたはnpm run devで私のアプリを起動するためにこれを使ってモックデータで実行するかどうかを決めます。ストリップ動的私はこのようなコードを有するWebPACKの

Webpackは、UglifyJSのデッドコード消去を使用してビルドプロセスでこれらの動的な要求を削除したいと考えていますが、それらが残っていることに気づき、something.jsがビルドされたバンドルに含まれます。

私の場合、出力は次のようになります。

module.exports = { 
    something: true, 
    mockData: (false) && __webpack_require__(181).default 
}; 

は私がバンドルから完全にそのインポートを削除することができますどのような方法はありますか?

Btw。私はこのような何かがうまくいくと思う:

let mockData; 
if (process.env.USE_MOCK) { 
    mockData = require('./mocks/something.js').default; 
} 
export default { 
    something: true, 
    mockData 
}; 

私はそのパターンにかなりの数回を持っているように、しかし必要とインラインを好むだろう。

export default { 
    something: true, 
    mockData: process.env.USE_MOCK ? require('./mocks/something.js').default : undefined 
}; 

または別々のモジュールのエクスポートを構築:

答えて

1

はこのような何か試してみてください

let module_export; 
module_export.something = true; 

if (process.env.USE_MOCK) { 
    module_export.mockData = require('./mocks/something.js').default; 
} 

export module_export; 
+0

を実際に、三項演算子は、トリックを行いました。 'process.env.USE_MOCK? require( './ mocks/something.js')。default:null'も動作し、少し短くなります。ありがとう! – amann

関連する問題