首页 > 解决方案 > 无法在 Windows 中使用 typescript 获取在 npm 脚本中定义的环境变量

问题描述

我在 npm 脚本中定义环境变量。

"scripts": {
    "start:build": "tsc -w",
    "start:live": "tsc",
    "start:run": "nodemon build/server.js",
    "start:dev:windows": "SET NODE_ENV=production && concurrently npm:start:build npm:start:run",
    "seeding": "node build/seeding.js"
  },

但是当我检索它时NODE_ENV它是可用的,但是false当我与相同的字符串比较时返回。

console.log('NODE_ENV', process.env.NODE_ENV, process.env.NODE_ENV == 'production');

下面是我的终端的附加快照

我的终端的输出

标签: node.jstypescript

解决方案


包 json 中的条目在 value 的末尾添加了一个空格production。它实际上是production (注意空间)。符号应触及值的&&末尾。

在您附加的图像中,您可以看到 console.log 结果的第二个字符串后面有两个空格。这就是第三个 console.log 条目返回 false 的原因 - 因为,您尝试在没有空格的情况下比较它。

正确的行:

"SET NODE_ENV=production&&concurrently npm:start:build npm:start:run"

推荐阅读