2017-10-20 60 views
0

我为Node.js平台使用commander.js构建了简单的命令行应用程序。 现在我想编译成简单的exe文件,我可以直接执行。如何将Node.js命令行应用程序转换为单个可执行文件?

意味着我要为完整的应用程序

一个可执行文件这是我的应用程序结构

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 

感谢

回答

1
  • 这是,我怎么包我的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" 
} 
  • 命令用来包装myappmyapp.exe pkg . --target host --output myapp-1.0.0-x64.exe --debug
1

这是不可能没有某种节点的运行节点应用运行时运行它 - 因此,如果你想分发你的程序作为独立的.exe,您将不得不将Node自身绑定到所述可执行文件以及您的代码中。有各种工具可以帮你做到这一点,比如EncloseJS

+0

大小并不重要,是的,我已经嵌入'node.exe'到打包可执行文件,但我怎么能?你知道'babel'命令行工具吗?你可以请发表工作示例将其打包为单个可执行文件吗? –

+0

'EncloseJS'由于未能从'https:// enclosejs.s3.amazonaws.com/enclose-v0.12.15-win32-5c54091.exe.sha256'下载资源而无法安装在Windows上' –

+0

@sspsingh:Babel is与此无关 - 它会编译您的JavaScript以使用较旧版本的浏览器/节点,但它不会影响您打包的方式。该错误看起来像您的网络的问题。 –

相关问题