我正在将我的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"]
}
提前感谢您。