Webpack生产模式-NODE_ENV未定义

Dav*_*ník 5 production mode webpack

我想使用webpack制作应用程序的生产版本:

"scripts": {
    "build": "webpack --mode production",
  },
Run Code Online (Sandbox Code Playgroud)

在我的webpack.config.js中,这行代码是我在整个配置中使用的内容:

const isDevelopment = process.env.NODE_ENV !== 'production';

Usage example:
{
  test: /\.s(a|c)ss$/,
    exclude: /\.module.(s(a|c)ss)$/,
    loader: [
      isDevelopment ? 'style-loader' : MiniCssExtractPlugin.loader,
                    'css-loader',
                    {
                        loader: 'sass-loader',
                        options: {
                            sourceMap: isDevelopment
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是process.env.NODE_ENV永远是undefined

我在Windows 10上

难道我做错了什么?

Dav*_*ník 7

我发现的方法是argv.mode在 export 中使用变量,如下所示:

module.exports = (env, argv) => {
    const isDevelopment = argv.mode !== 'production';
    return {
      // Config...
    }
}
Run Code Online (Sandbox Code Playgroud)


Ion*_*Ion 6

您也可以像这样手动设置它"build": "set NODE_ENV=production webpack --mode production"(仅限 Windows)

或使用 cross-env Run scripts that set and use environment variables across platforms

https://www.npmjs.com/package/cross-env

"build": "cross-env NODE_ENV=production

  • 是的,但它取决于操作系统 (2认同)