节点可执行文件运行后,导出NODE_PATH
有节点启动后设置NODE_PATH envvariables的方法吗?
如果我这样做:
async.series([ function export_NODE_PATH(cb){ cp.exec('export NODE_PATH=$(npm root -g):$NODE_PATH',cb); },...
它不会工作,但如果我在启动节点之前设置NODE_PATH,它将按预期方式工作
export NODE_PATH=$(npm root -g):$NODE_PATH && node index --transpile test
有没有办法在node.js运行时设置环境variables,而不需要在执行前在命令行设置它? 是否像在运行时设置process.env.NODE_PATH一样简单?
例如,这似乎工作:
cp.exec('echo $(npm root -g)', function (err, stdout, stderr) { if (err || String(stdout).match(/error/i) || String(stderr).match(/error/i)) { cb(err || stdout || stderr); // my funky way of handling this } else { process.env.NODE_PATH += stdout; cb(null); } });
但我不知道这是多么犹太教,而且在进一步的testing之后,它似乎并不工作。
一种方法是创build一个.env文件,并使用名为dotenv的npm库自动将.env文件variables加载到process.env中。 步骤如下:
步骤1:在您的项目目录$ touch .env
创build一个.env文件
第2步:将下列文本放在.env文件中“ NODE_ENV=yourvaluehere
”(不含引号)
第3步:安装dotenv $ npm install dotenv --save
步骤3:在运行js文件启动服务器,添加下面的require('dotenv').config();
Viola现在正在通过env文件在节点进程中设置环境variables。 您的process.env
将存储您的.env
文件中的所有键值对!
设置process.env.NODE_PATH
(或任何其他的env var)完全是“合法的” – 实际上这就是dotenv
和yenv
这样的库如何实现它们的魔力。
- 在Javascript / node.js模块之间共享variables?
- 如何检查节点js中是否设置了环境variables?
- 在由jsdom加载的脚本中设置全局variables
- 如何从node.js中的函数外部访问局部variables
- export NODE_ENV =生产不会改变gulpfile.js中的process.env.NODE_ENV
- build议在Node.js中导出variables的方法
- 在JavaScript中设置一个variables(node.js)
- 使用通过heroku工头从.env文件加载的RSA私钥签名JWT时出错
- AngularJS:http链调用和NodeJS的问题:在多个http调用中使用variables的问题