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

时间:2017-10-20 10:54:24

标签: node.js windows command node-commander

我使用commander.js为Node.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

由于

2 个答案:

答案 0 :(得分:1)

在没有某种Node运行时的情况下运行Node应用程序 on 是不可能的 - 因此,如果您希望将程序作为独立的.exe分发,您必须将Node本身捆绑到所述可执行文件以及您的代码中。有各种工具可以帮助您,例如EncloseJS

答案 1 :(得分:1)

  • 这就是我如何将我的node.js命令行应用程序打包到单个可执行文件
  • 使用pkg
  • 安装npm i -g 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