如何将Node.js命令行应用程序转换为单个可执行文件?
问题描述:
我为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
感谢
答
- 这是,我怎么包我的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
答
这是不可能没有某种节点的运行节点应用运行时运行它在 - 因此,如果你想分发你的程序作为独立的.exe
,您将不得不将Node自身绑定到所述可执行文件以及您的代码中。有各种工具可以帮你做到这一点,比如EncloseJS。
大小并不重要,是的,我已经嵌入'node.exe'到打包可执行文件,但我怎么能?你知道'babel'命令行工具吗?你可以请发表工作示例将其打包为单个可执行文件吗? –
'EncloseJS'由于未能从'https:// enclosejs.s3.amazonaws.com/enclose-v0.12.15-win32-5c54091.exe.sha256'下载资源而无法安装在Windows上' –
@sspsingh:Babel is与此无关 - 它会编译您的JavaScript以使用较旧版本的浏览器/节点,但它不会影响您打包的方式。该错误看起来像您的网络的问题。 –