如何在NPM任务中为node.js设置环境变量

时间:2016-03-25 14:37:31

标签: node.js windows cmd npm

我有train任务同时加载,节点检查员和节点主管。

npm

结果:

{
"start": "concurrently --kill-others \"node-inspector\" \"set NODE_PATH=.&&supervisor -n error -- ./bin/www --debug\"",
"prestart": "start chrome http://localhost:3000 http://localhost:8080/debug?port=5858"
}

但是当我尝试[1] set NODE_PATH=.&&supervisor -n error -- ./bin/www --debug exited with code 0 --> Sending SIGTERM to other processes.. [0] Node Inspector v0.12.7 [0] Visit http://127.0.0.1:8080/?port=5858 to start debugging. 时,我得到localhost:3000

问题1:如何将ERR_CONNECTION_REFUSED(或任何其他ENV变量)传递给主管 - 这样我的节点才能正常运行?

问题2:或许您知道,如何在NODE_PATH=.脚本中组织两个监视任务?例如:npmnode-supervisor

注1:如果我直接从命令行运行node-inspector - 运行良好。

注2:如果我在没有set NODE_PATH=.&&supervisor -n error -- ./bin/www --debug的情况下运行npm start它运行良好但节点错误 - 导致它无法找到模块,例如NODE_PATH=.&&或{{ 1}}因为我不想把所有内容都放在require('helpers/log')

统计:

  • Windows 8.1
  • 节点4.4.0
  • npm 2.4.0

1 个答案:

答案 0 :(得分:0)

关于第一个问题,请查看方便的帮助程序模块cross-env

正是为此目的而设计的,并且易于使用。只需在通常使用UNIX风格的env的地方使用import sys import subprocess for root, dirs, files in os.walk(r'c:\\'): for name in files: if name == 'chrome.exe': pathFile = print(os.path.abspath(os.path.join(root, name))) subprocess.call([sys.executable, 'mail1.py']) sys.exit() ,就可以走了。例如,我的样子:

cross-env