webpeack配置的全局变量为undefined?

//webpack 配置如下:
if(env.production) {
    plugins.push(
      new MiniCssExtractPlugin({
        filename: path.posix.join(__dirname, '../dist/style.css')
      }),
      new webpack.DefinePlugin({
        'process.env': {
          NODE_ENV: '"production"'
        }
      })
    )
  }
  console.log('值='+process.env.NODE_ENV)

图片描述

图片描述
通过DefinePlugin赋值,值显示为undefined,不知道是出了什么原因?

阅读 3.6k
2 个回答

首先,请仔细阅读 DefinePlugin 的文档。

现在我假设你读过了。DefinePlugin 用来替换代码中的常量,比如代码中有 const a = SOME_CONST,你的配置文件里有 DefinePlugin({ SOME_CONST: '"hello"'}),那么代码就会被替换成 const a = "hello",所以引号在这里非常重要。

所以就可以知道,你这种直接在配置文件里输出定义的做法是多么莫名其妙,一看就没看文档。

至于怎么处理错误,这个要看你代码里怎么使用。建议你找到对应行,然后根据你的代码调整配置。

console.log('值='+process.env.NODE_ENV)

上面这坨代码放到你的业务代码中

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进