webpack的环境变量设置

657 阅读1分钟

process是什么?

process是node中的一个全局变量,它有一个env属性,任意创建一个js文件,打印process变量,就可以看到process的内容

20200117161436504.png

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"
  }