加载中...

环境(Environment)


最终,你会发现需要在开发和生产构建之间,消除 webpack.config.js 的差异。你(至少)需要两个选项:

使用 --env

webpack CLI 支持通过 --cli 指定构建环境键(build environment key)(如 --env.production--env.platform=web)。要使用这些设置,请将 webpack.config.js 中的配置对象(configuration object)更改为一个函数:

-module.exports = {
+module.exports = function(env) {
+  return {
    plugins: [
      new webpack.optimize.UglifyJsPlugin({
+        compress: env.production // 只在生产环境构建时压缩
      })
    ]
+  };
}; 

使用环境变量

或者,可以使用 Node.js 中的标准方式:在运行 webpack 时设置环境变量,并且使用 Node.js 的 process.env 引用变量。NODE_ENV 变量通常被视为事实标准(查看这里)。

webpack.config.js

module.exports = {
  plugins: [
    new webpack.optimize.UglifyJsPlugin({
+      compress: process.env.NODE_ENV === 'production'
    })
  ]
}; 

使用 cross-env 包来跨平台设置(cross-platform-set)环境变量:

package.json

{
  "scripts": {
    "build": "cross-env NODE_ENV=production PLATFORM=web webpack"
  }
} 

References


还没有评论.