我想在开发人员构建中保留console.log,但在生产版本中我希望将它们删除。
babel-plugin-transform-remove-console
我不记得我是否将它安装为--save或--save-dev(并且不太确定区别)。我也不知道如何检查它的安装方式,但它在我的node_modules目录中为babel-plugin-transform-remove-console
。
无论我使用npm run dev
还是npm run build
来构建我的项目,我仍然会看到console.log语句。我本来期望npm run build
命令删除console.log文件。
我的.babelrc文件如下所示:
{
"presets" : ["env", "stage-0", "react"],
"env" : {
"production": {
"plugins": ["transform-remove-console"]
}
}
}
我的package.json的相关部分如下所示:
"scripts": {
"dev": "webpack -d --watch",
"build": "webpack -p"
},
...
"dependencies": {
...
"babel-plugin-transform-remove-console": "^6.9.2",
...
}
为什么npm run build
没有为我删除console.log语句?
答案 0 :(得分:1)
我不记得我是将其安装为
--save
还是--save-dev
的(并不太确定两者之间的区别)。
只需查看您的package.json文件!
-- save
将使您的软件包以依赖关系显示(如果未提供任何选项,这是默认行为)
--save-dev
将使您的软件包显示在 devDependencies
答案 1 :(得分:0)
当您使用运行webpack -p
时,webpack会设置process.env.NODE_ENV = "production"
,但Babel期望process.env.BABEL_ENV = "production"
。
答案 2 :(得分:0)
-p
是Webpack本身的标志。巴别塔对此一无所知。如果您希望Webpack配置根据它切换行为,则需要自己执行此操作。
// webpack.config.js
module.exports = function(env) {
return {
// ...
module: {
rules: [{
loader: "babel-loader",
options: {
forceEnv: env.production ? "production" : "development"
}
}],
},
},
};