webpack 踩坑之 process.env.NODE_ENV

Author Avatar
饶英俊(Royin) 10月 26, 2021
问题引入

当你尝试在 webpack.config.js 文件中访问 process.env.NODE_ENV(以下简称 NODE_ENV) 。很遗憾,结果是 undefined

解析原因

webpack是在编译后运行时提供了 NODE_ENV 。而当 Webpack读取配置文件 webpack.congig.js 时,此时 NODE_ENV 并未赋值

解决办法

使用 npm 包 cross-env,该命令支持跨系统设置环境变量。使用如下命令安装:

npm install cross-env -D

可以通过 cross-env 设置环境变量 NODE_ENV 解决来这个问题。在 package.json 中的 scripts 字段中添加如下配置(博主用的是 webpack 5.X):

{
  "scripts": {
    "build": "cross-env NODE_ENV=production webpack",
    "serve": "cross-env NODE_ENV=development webpack serve"
  }
}

至此,你可以在 webpack.config.js 文件中访问 NODE_ENV 了。

该博客版权归饶英俊(Royin)所有,严禁抄袭,欢迎转载。如有反馈或建议等可通过邮箱联系我
本文链接:https://raoyingjun.github.io/2021/10/26/webpack%E8%B8%A9%E5%9D%91%E4%B9%8Bprocess.env.NODE_ENV/