process是什么?
process是node中的一个全局变量,它有一个env属性,任意创建一个js文件,打印process变量,就可以看到process的内容
process.env.NODE_ENV
在webpack4中可以通过mode来设置
- 如果是development:mode:“development”
- 如果是production: mode:“production”
默认情况下webpack会将production作为mode的默认值。
webpack.DefinePlugin与cross-env常用于在项目工程化中定义环境变量,
webpack.DefinePlugin用于在编译期定义环境变量,意味着在代码中写上process.env.NODE_ENV不会在编译期出现错误提醒;
plugins: [ new webpack.DefinePlugin({ 'process.env': { NODE_ENV: '"production"' // 或者'"development"' } }) ]
cross-env库用于在运行时定义环境变量
- 安装命令
npm install --save-dev cross-env
- 在package.json中的scripts命令如下
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --progress --colors --devtool cheap-module-eval-source-map --hot --inline",
"build": "cross-env NODE_ENV=production webpack --progress --colors --devtool cheap-module-source-map"
}