相关疑难解决方法(0)

在npm-scripts中传递环境变量

我有一个package.json,脚本键中包含以下(简化)内容:

...
scripts: {
   "start": "NODE_ENV=${NODE_ENV:=production} node start-app.js",
   "poststart": "echo $NODE_ENV"
}
...
Run Code Online (Sandbox Code Playgroud)

从命令行我可以运行:

npm start
Run Code Online (Sandbox Code Playgroud)

这将运行我的start-app.js脚本并将process.env.NODE_ENV环境变量设置为"production".请参阅此处获取语​​法说明.

如上所述启动后会自动开始运行后这里.

但是,poststart不会"继承"NODE_ENV shell环境变量,因此echo命令不会回显任何内容.

我的生产代码有点复杂,但我想要完成的是将NODE_ENV变量从"起点"传递给依赖脚本.关于如何做的任何建议/最佳实践?

我不想在poststart中硬编码NODE_ENV,因为我可能想要:

NODE_ENV=development npm start
Run Code Online (Sandbox Code Playgroud)

我希望每一个"沿着链条"继承同样的环境.

shell environment-variables node.js npm

34
推荐指数
2
解决办法
5万
查看次数

npm运行如何工作?

输入时会npm run <command>怎样?是<command>传递给sh shell的方法,例如:

sh -c <command>
Run Code Online (Sandbox Code Playgroud)

在外壳程序中添加了其他局部变量,即node_modules/.bin?的路径。

我认为npm仅可通过使用node在JavaScript Universe中工作,但似乎还有很多事情要做。如何&&&被处理的?是globstar安全使用?

shell sh node.js npm

3
推荐指数
1
解决办法
1409
查看次数

标签 统计

node.js ×2

npm ×2

shell ×2

environment-variables ×1

sh ×1