Node.js 在我的npm包中包含来自C库的命令

Node.js 在我的npm包中包含来自C库的命令,node.js,npm,package,package.json,npm-package,Node.js,Npm,Package,Package.json,Npm Package,我有一个C库中的.exe文件,这是我的包所依赖的。当用户的路径中已经包含此命令时,我的包可以正常工作。但是当用户安装我的软件包时,NPM是否也可以从这个C库安装这个命令? 我试图在package.json上的bin中包含.exe文件,当全局安装我的包时,此命令可用于提示。但不可用于child_process.spawn。当我的代码尝试使用它时,我收到一个错误: Error: spawn fpcalc ENOENT at Process.ChildProcess._handle.onexit (i

我有一个C库中的.exe文件,这是我的包所依赖的。当用户的路径中已经包含此命令时,我的包可以正常工作。但是当用户安装我的软件包时,NPM是否也可以从这个C库安装这个命令? 我试图在package.json上的bin中包含.exe文件,当全局安装我的包时,此命令可用于提示。但不可用于child_process.spawn。当我的代码尝试使用它时,我收到一个错误:

Error: spawn fpcalc ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:267:19)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
Emitted 'error' event on ChildProcess instance at:
at Process.ChildProcess._handle.onexit (internal/child_process.js:273:12)
at onErrorNT (internal/child_process.js:469:16)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: 'ENOENT',
code: 'ENOENT',
syscall: 'spawn fpcalc',
path: 'fpcalc',
//编辑


基本上,我需要在安装包时设置一个PATH变量,这样子进程就可以使用命令“fpcalc”

我找到了解决问题的方法。实际上,在package.json上包含一个.exe是有效的!问题实际上与方法child_process.spawn有关。出于某种原因,它不执行外部命令,至少在我尝试时是这样。所以我最终使用了child_process.exec,效果很好

// package.json
{
 "bin": {
      "your-command": "file_path.exe"
 }
}
顺便说一下,我创建了一个库,它实现了一个C库来识别音乐。看更多