如何将环境变量传递给pkg(Node.js)?

10

我正在将我的Node.js项目打包成可执行文件。为此,我使用了“pkg”工具(https://www.npmjs.com/package/pkg#detecting-assets-in-source-code)。

pkg -t node6-linux-x64 . -d

"

package.json(使用better-npm-run):

"
"env": {
  "NODE_ENV": "development",
  "NODE_PATH": "../shared/config:../shared/lib:./config:./lib:./relay",
  ..
}

我也尝试过设置操作系统环境变量,但pkg也无法接受它。
export NODE_PATH=/path/from/root/shared/config:/path/from/root/shared/lib:/path/from/root/config:/path/from/root/lib:/path/from/root/relay
OR
export PATH=${PATH}:/path/from/root/shared/config:/path/from/root/shared/lib:/path/from/root/config:/path/from/root/lib:/path/from/root/relay

我也尝试了以下解决方案,它确实有助于解决一些警告。
"pkg":{
  "scripts": ["config/**/*.js", "lib/**/*.js", "relay/server/**/*.js", "../shared/config/**/*.js", "../shared/lib/**/*.js"]
}

但是我的应用程序使用本地的 requires(),因此会创建更多这样的警告。由于我的应用程序很复杂,改变所有本地 requires() 很困难。

另外,在 "scripts" (package.json) 中访问父目录的方式是否正确?

"pkg":{
  "scripts": ["../shared/config/**/*.js", "../shared/lib/**/*.js"]
}

提前感谢您。

1个回答

0

所以在这里,你只需要在脚本运行之前设置这两个环境变量,一个简单的方法是这样的:

NODE_ENV=development NODE_PATH=../shared/config:../shared/lib:./config:./lib:./relay pkg -t node6-linux-x64 . -d


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接