Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将节点应用程序绑定到exe后,它将查找一个.node文件,该文件的路径是硬编码到使用节点gyp构建它的计算机上的_Node.js_Node Gyp - Fatal编程技术网

Node.js 将节点应用程序绑定到exe后,它将查找一个.node文件,该文件的路径是硬编码到使用节点gyp构建它的计算机上的

Node.js 将节点应用程序绑定到exe后,它将查找一个.node文件,该文件的路径是硬编码到使用节点gyp构建它的计算机上的,node.js,node-gyp,Node.js,Node Gyp,我有一个节点应用程序,我将其捆绑到.exe中,并作为windows服务运行。我包括node_模块和node.exe,因此用户不需要在其系统上安装npm/node。这很好,直到我需要包含一个.dll。我使用node gyp和binding.gyp文件创建我在应用程序中使用的.node文件。节点gyp似乎对生成.node文件的机器的绝对路径进行了硬编码。因此,当.exe试图在另一台计算机上运行时,它在查找到我的计算机的路径时出错。下面是我的binding.gyp文件的一个示例:{ “目标”:[ {

我有一个节点应用程序,我将其捆绑到.exe中,并作为windows服务运行。我包括node_模块和node.exe,因此用户不需要在其系统上安装npm/node。这很好,直到我需要包含一个.dll。我使用node gyp和binding.gyp文件创建我在应用程序中使用的.node文件。节点gyp似乎对生成.node文件的机器的绝对路径进行了硬编码。因此,当.exe试图在另一台计算机上运行时,它在查找到我的计算机的路径时出错。下面是我的binding.gyp文件的一个示例:
{
“目标”:[
{
“目标名称”:“接口”,
“资料来源”:[
“src/cfc接口/interface.cpp”
],
“包含目录”:[
“我最终在我的webpack.config中使用了。
模块:{
规则:[
{
测试:/\.node$/,,
加载器:“本机外部加载器”,
选项:{
重写路径:path.resolve('C:/ProgramFiles(x86)/XXX/DeviceManager/build/Release'))
}
}
]
}

我对安装.exe的安装目录进行了硬编码。

您使用的是什么打包工具?我使用的是Inno setup,但路径是在npm install上创建的,因此与此无关。