我想问一个愚蠢的问题,但我已经谷歌搜索了一段时间,并且找不到令人满意的答案。所以也没有这样的讨论,只有How to set NODE_ENV to production/development in OS X和How can I set NODE_ENV=production on Windows?
要在一行中逐个运行命令,我们通常会按;
(或&&
)
所以我假设我应该像PORT=3000 ; node server.js
或export PORT=3000; node server.js
那样运行命令,就像PORT=3000 ; echo $PORT
但我们只是在PORT=3000 node server.js
(不含;
或&&
)之间加上空格,并将PORT读入process.env.PORT.
shell如何制作nodejs获取环境变量?如果有人可以显示nodejs代码会更好。
-----更新------
我对这个shell语法感到困惑的原因(根据我的有限知识)是我认为Unix命令行的一般格式是
command options(s) filename(s)
中间的空格用于将命令与选项和文件名分开。那么它如何用于分离2个命令呢?
答案 0 :(得分:0)
我检查了nodejs文档并找到了答案https://nodejs.org/api/process.html#process_process_env
所以它是environ,而不是2个独立的命令,
Bourne样式的shell支持语法
NAME=value command
仅在范围内创建环境变量定义 执行命令的进程。
或bash manual 3.7.4解释。
这也是它不能在Windows上工作的原因:How can I set NODE_ENV=production on Windows?
对于Windows用户的注释,作为daw"的注释,设置NODE_ENV = production&& "为变量添加尾随空格,不要使用单/双引号。
我感到非常尴尬,我几乎想删除我的问题。我把它放在这里,万一其他人也可能有这个疑问。或者其他人可以进一步解释 environ 或节点如何将其读入process.env对象。