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