发布到 npmjs.com 时分发带有 nodejs 模块的二进制可执行文件
Distribute a binary executable with a nodejs module when publishing to npmjs.com
我有一个可执行文件 myutil.exe
,我从我的 nodejs 模块调用它来执行一些功能。
我希望将其打包,将我的 NodeJS 模块发布到 npmjs.com,并且在这个 windows 平台上使用时,可执行文件应该是这个 nodejs 库的一部分,因为我的 nodejs 代码调用可执行文件来执行一个功能.我已经 运行 这个来自 nodejs 的命令行二进制文件。
如何做到这一点以及如何最好地将此可执行二进制文件包含在其中?它应该以某种方式托管在包裹之外吗?
另请注意,这只是一个限制,目前它必须是 windows 上的可执行文件,或者由于 Linux 系统上的 运行nable 二进制文件的性质其中的代码,不能是 DLL/library。稍后也许我可以将它的一些代码移动到 DLL/library.
supply a bin
field in your package.json
which is a map of command name to local file name. On install, npm will symlink that file into prefix/bin
for global installs, or ./node_modules/.bin/
for local installs.
例如,如果您在 package.json
中有这个,并且全局安装了您的包,则命令 npmputty
将在 PATH 中可用。
"bin": {
"npmputty": "./bin/putty.exe"
},
如果您不想在包中发布此可执行文件,可以实施 postinstall
script 从 github.com.
之类的地方下载它
{
"scripts" : {
"postinstall" : "scripts/download_from_github.js"
}
}
我有一个可执行文件 myutil.exe
,我从我的 nodejs 模块调用它来执行一些功能。
我希望将其打包,将我的 NodeJS 模块发布到 npmjs.com,并且在这个 windows 平台上使用时,可执行文件应该是这个 nodejs 库的一部分,因为我的 nodejs 代码调用可执行文件来执行一个功能.我已经 运行 这个来自 nodejs 的命令行二进制文件。
如何做到这一点以及如何最好地将此可执行二进制文件包含在其中?它应该以某种方式托管在包裹之外吗?
另请注意,这只是一个限制,目前它必须是 windows 上的可执行文件,或者由于 Linux 系统上的 运行nable 二进制文件的性质其中的代码,不能是 DLL/library。稍后也许我可以将它的一些代码移动到 DLL/library.
supply a
bin
field in yourpackage.json
which is a map of command name to local file name. On install, npm will symlink that file intoprefix/bin
for global installs, or./node_modules/.bin/
for local installs.
例如,如果您在 package.json
中有这个,并且全局安装了您的包,则命令 npmputty
将在 PATH 中可用。
"bin": {
"npmputty": "./bin/putty.exe"
},
如果您不想在包中发布此可执行文件,可以实施 postinstall
script 从 github.com.
{
"scripts" : {
"postinstall" : "scripts/download_from_github.js"
}
}