webpack DefinePlugin process.env.NODE_ENV 未定义
webpack DefinePlugin process.env.NODE_ENV is undefined
我不太擅长前端技术...所以如果我有错误的期望 - 请纠正我或我的代码。我创建了一个存储库,其中包含允许重现问题的代码。这是 link:
https://github.com/ffatheranderson/webpack-issue-reproduction
如项目readme.md所述:
========================================
- 我期望什么? - 我期望在执行
npm run watch
命令后 - 生成
result/bundle.js
文件有这样的行:
...
var _environment = 'development';
var _ANOTHER_VARIABLE = "another variable value";
...
- 实际结果是什么? - 在我执行
npm run watch
命令后 - 生成的
result/bundle.js
文件包含这样的行:
...
var _environment = undefined;
var _ANOTHER_VARIABLE = "another variable value";
...
- 为什么我会有这样的期望? - 因为这些行:
...
plugins: [
new webpack.DefinePlugin({
ENVIRONMENT: JSON.stringify(process.env.NODE_ENV),
ANOTHER_VARIABLE: JSON.stringify("another variable value"),
})
]
...
在 webpack.config.js
文件中。
如您所见,变量 _environment
未按承诺使用 development
值进行初始化
这里:https://webpack.js.org/configuration/mode/
========================================
_environment
是 undefined
因为环境变量 NODE_ENV
未定义。您可以通过以下三种方式之一解决此问题:
- 正在调用
npm run watch --node-env=development
:https://webpack.js.org/api/cli/#node-env
- 在当前 shell 会话中导出
NODE_ENV
:
$ export NODE_ENV=production; npm run watch
- 更新您的配置以指定来自其他来源的值(例如
--env
参数、磁盘上的文件、对其进行硬编码等)
我不太擅长前端技术...所以如果我有错误的期望 - 请纠正我或我的代码。我创建了一个存储库,其中包含允许重现问题的代码。这是 link: https://github.com/ffatheranderson/webpack-issue-reproduction
如项目readme.md所述:
========================================
- 我期望什么? - 我期望在执行
npm run watch
命令后 - 生成result/bundle.js
文件有这样的行:
...
var _environment = 'development';
var _ANOTHER_VARIABLE = "another variable value";
...
- 实际结果是什么? - 在我执行
npm run watch
命令后 - 生成的result/bundle.js
文件包含这样的行:
...
var _environment = undefined;
var _ANOTHER_VARIABLE = "another variable value";
...
- 为什么我会有这样的期望? - 因为这些行:
...
plugins: [
new webpack.DefinePlugin({
ENVIRONMENT: JSON.stringify(process.env.NODE_ENV),
ANOTHER_VARIABLE: JSON.stringify("another variable value"),
})
]
...
在 webpack.config.js
文件中。
如您所见,变量 _environment
未按承诺使用 development
值进行初始化
这里:https://webpack.js.org/configuration/mode/
========================================
_environment
是 undefined
因为环境变量 NODE_ENV
未定义。您可以通过以下三种方式之一解决此问题:
- 正在调用
npm run watch --node-env=development
:https://webpack.js.org/api/cli/#node-env - 在当前 shell 会话中导出
NODE_ENV
:$ export NODE_ENV=production; npm run watch
- 更新您的配置以指定来自其他来源的值(例如
--env
参数、磁盘上的文件、对其进行硬编码等)