繁体   English   中英

webpack DefinePlugin process.env.NODE_ENV 未定义

[英]webpack DefinePlugin process.env.NODE_ENV is undefined

我不太擅长前端技术......所以如果我有错误的期望 - 请纠正我或我的代码。 我创建了一个包含允许重现问题的代码的存储库。 这是链接: 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未定义。 您可以通过以下三种方式之一解决此问题:

  1. 调用npm run watch --node-env=development : https://webpack.js.org/api/cli/#node-env
  2. 在您当前的 shell session 中导出NODE_ENV
     $ export NODE_ENV=production; npm run watch
  3. 更新您的配置以指定来自其他来源的值(例如--env参数、磁盘上的文件、对其进行硬编码等)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM