前端工程化开发阶段会遇到哪些场景需要使用条件编译?
1.不使用mock的那部分假数据,总不能放在代码里发布生产环境吧?
2.debug工具代码,如移动端比较流行的vconsole插件,我们不希望测试前引入这份代码,发布生产的时候手动关闭这部分代码吧,我们需要一个开关的功能去自动化引入和移除。
…
遇到以上这些情况,正是需要条件编译这个功能。
那么如何在webpack里面加入条件编译?
1.利用UglifyJsPlugin插件去除死代码(不执行的代码块),例如
if (false) {
do somthing...
}
如上面场景2,需要一个开关自动切换debug工具代码注入和移除。可以在工程上注入环境变量来作为开关,如下配置:
"scripts": {
"dev": "node build/dev-server.js",
"build": "node build/build.js",
"build:test"