npm - cross-env 未设置 NODE_ENV

标签 npm webpack

我想设置环境变量来在运行时配置 URL。 我使用 webpack 来捆绑 js,这里定义的插件是为了使 NODE_ENV 在编译时可用。

new webpack.DefinePlugin({
  'process.env':{
    'NODE_ENV': JSON.stringify(process.env.NODE_ENV),
    //'TARGET_ENV': JSON.stringify(process.env.TARGET_ENV)
  }
})

这是我要根据目标环境执行的yarn:

"test-kubernetes": "cross-env NODE_ENV=kubernetes-cluster webpack && yarn run testenv",
"build": "cross-env NODE_ENV=production webpack --mode=production",
"dev": "cross-env NODE_ENV=development webpack --mode=development && webpack-dev-server --hot",

但是,process.env.NODE_ENV 在运行时是未定义。 这个问题似乎与 cross-env 有关自从使用以来:

SET NODE_ENV=kubernetes-cluster

而不是

跨环境 NODE_ENV=kubernetes-cluster

在我的 Windows 机器上一切正常。

有什么想法吗?

最佳答案

自 5.2.0 起,Windows 环境出现了回归。我设法让一切正常切换回 5.1.6。 引用问题:https://github.com/kentcdodds/cross-env/issues/185

关于npm - cross-env 未设置 NODE_ENV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55686215/

相关文章:

typescript - 如何在 TypeScript 2 项目中安装 Firebase 3 的类型?

npm - 错误 : No provider for "framework:jasmine"!(正在解析:框架:jasmine)

node.js - 在 webpack 中使用 moment-timezone

node.js - 在 NodeJS 中执行 webpack 编译的 bundle

javascript - 如何将生成的运行时 block 捆绑到 Webpack 4 中的显式 vendor block 中

javascript - 如何使用 grunt 目标

javascript - npx create-next-app@latest --ts 3 个高严重性漏洞 [node-fetch 容易受到向未经授权的参与者泄露敏感信息的影响]

node.js - 如何调用dialogflow v2中的事件:nodejs

css - localIdentName 哈希冲突

javascript - Webpack:导出到窗口中的现有模块