1
需要我有一个类似的代码:地带动态从的WebPack
export default {
something: true,
mockData: process.env.USE_MOCK && require('./mocks/something.js').default
};
process.env.USE_MOCK
被设定为webpack.DefinePlugin
要么true
或false
。我使用它来启动我的应用程序USE_MOCK=true npm run dev
或npm run dev
以运行模拟数据或不运行。
我希望Webpack在UglifyJS的死代码消除的构建过程中删除这些动态需求,但我注意到它们仍然存在,所以something.js
将在构建的包中。
在我的情况下,输出是类似于:
module.exports = {
something: true,
mockData: (false) && __webpack_require__(181).default
};
有没有一种方法我怎样才能从包中完全删除该进口?
顺便说一句。我认为这样的作品:
let mockData;
if (process.env.USE_MOCK) {
mockData = require('./mocks/something.js').default;
}
export default {
something: true,
mockData
};
我宁愿内联要求,因为我已经有了这种模式不少次。
事实上,三元运营商做的伎俩。 'process.env.USE_MOCK? require('./ mocks/something.js')。default:null'也有效,并且有点短。谢谢! – amann