繁体   English   中英

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

[英]How to pass environment variables to pkg(node js)?

我正在将我的 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(),因此它会创建更多此类警告。 由于我的应用程序很复杂,因此很难更改所有本地要求。

访问“脚本”(package.json)中的父目录也是正确的方法吗?

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

提前致谢

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM