如何将Node.js命令行应用程序转换为单个可执行文件



我使用Node.js平台的commander.js构建了一个简单的命令行应用程序。现在我想把它编译成一个简单的exe文件,我可以直接执行它。

意味着我想要完整应用程序的单个可执行文件

这是我的应用程序结构

APP_ROOT
| - package.json
| - node_modules
| - node_modules/.bin/myapp.bat
| - node_modules/myapp/bin/myapp
| - node_modules/myapp/bin/myapp-action1
| - node_modules/myapp/bin/myapp-action2

感谢

  • 这就是我如何将node.js命令行应用程序打包为单个可执行文件
  • 使用npm i -g pkg安装pkg模块
  • 这是我的package.json文件

json

{
"name": "my-app-exe",
"version": "1.0.0",
"description": "Myapp-Cli tool as executable",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"keywords": [
"myapp",
"cli",
"exe"
],
"author": "Shisht",
"license": "MIT",
"devDependencies": {
"myapp": "1.0.0"
},
"bin": "node_modules/myapp-cli/bin/cli",
"pkg": {
"assets": "node_modules/**/*"
},
"help": "pkg . --target host --output myapp-1.0.0-x64.exe --debug"
}
  • 用于将myapp打包为myapp.exe的命令 pkg . --target host --output myapp-1.0.0-x64.exe --debug

如果没有某种Node运行时在上运行它,就不可能运行Node应用程序,因此,如果您希望将程序作为独立的.exe分发,则必须将Node本身绑定到所述可执行文件和代码中。有各种工具可以帮你做到这一点,比如EncloseJS。

最新更新