如何在node.js中导出env变量
How to export env variable in node.js
我非常喜欢我的node.js
,所以我想使用它作为bash
启动脚本~/.bashrc
,但我不知道如何导出变量。
目前我不得不使用这种方法:
export PS1=`node ~/PS1.js`
export PS2=`node ~/PS2.js`
export PATH=`node ~/PATH.js`
相反,我想要.bashrc
看起来有
#!/usr/local/bin/node
//do something, define functions
export_var('PS1', PS1())
export_var('PS2', PS2())
export_var('PATH', generatePATH())
process.env.PATH = something
不导出,只为当前执行的进程设置,该进程本身就是节点。
Node.js将在一个单独的进程中运行,该进程将获得环境的副本。您不能更改父进程(执行.bashrc的进程)的环境。
但以下问题有一个答案:shell脚本可以设置调用shell的环境变量吗?
您可以在node.js中编写一个新的脚本文件,并通过source
调用它。
一种可能的方法是使用JS打印出导出语句,然后在shell中使用eval在当前shell中对其求值。
例如test.js
#!/usr/bin/env node
console.log('export A=40; export B=10');
外壳内:
eval `./test.js`
echo $A
在我的情况下,它是有效的:
const exportVar = (name, value) => {
process.env[name] = value;
};
exportVar("NODE_ENV", "test");
但在某些情况下,使用exec(或spawn):也很有用
const { execSync } = require('child_process');
execSync("NODE_ENV=test && echo $NODE_ENV", {
stdio: 'inherit',
});
相关文章:
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 将process.env变量从节点传递或使用到reactjs
- 如何将ENV变量传递到脚本标记中
- 如何访问javascript中的laravel.env变量
- 将模块安装为全局变量时遇到问题 -- /usr/bin/env 不是目录
- 什么'当使用angular fullstack生成器时,在后端访问env变量的最佳方式是
- 如何在node.js中导出env变量
- 如何在npm脚本中使用env变量的值
- Node process.env 变量为空
- 用mocha测试依赖于环境变量process.env.APP_ENV的配置模块
- 在节点中的开发过程中测试ENV变量
- 节点.JS-从package.json跨脚本导出env变量失败