如何在 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 - 而不是 staging
和 production
.
避免这种情况的最简单方法是 删除 &&
之前的 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"
}
"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 - 而不是 staging
和 production
.
避免这种情况的最简单方法是 删除 &&
之前的 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"
}