如何在 Windows 上使用 nodemon 设置 NODE_ENV=production?

How can I set NODE_ENV=production with nodemon on Windows?

"scripts": {
    "start": "SET NODE_ENV=staging && nodemon app",
    "production": "set NODE_ENV=production && nodemon app",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

没用 ⚒

我的临时端口是 3000,我的生产端口是 5000,但无论我做什么,nodemon 都没有取值。

可能的问题是 && 之前的 space 字符成为环境变量值的一部分,因此值为 staging production - 注意尾随 space - 而不是 stagingproduction.

避免这种情况的最简单方法是 删除 && 之前的 space(它看起来很尴尬,但它有效):

"scripts": {
    "start": "SET NODE_ENV=staging&& nodemon app",
    "production": "set NODE_ENV=production&& nodemon app",
    "test": "echo \"Error: no test specified\" && exit 1"
  }

为了避免此类问题一般来说,最好使用
形式在cmd.exe中分配变量值 set "variable=value"
,即将名称、="..." 中的值整体括起来,明确界定值,而不管后续(未引用)whitespace;因此,以下内容也应该有效(根据 JSON 的要求,嵌入的 " 字符转义为 \")。

"scripts": {
    "start": "SET \"NODE_ENV=staging\" && nodemon app",
    "production": "set \"NODE_ENV=production\" && nodemon app",
    "test": "echo \"Error: no test specified\" && exit 1"
  }