0

所以我使用 pkg 创建一个相当简单的 node/express 应用程序的可执行文件。我遇到了 npm 模块 robotsjs 的问题,每当我创建我的 exe 时,由于以下错误,它不会运行:

pkg/prelude/bootstrap.js:1740
  throw error;
  ^

TypeError: Cannot read property '1' of null
at process.dlopen (pkg/prelude/bootstrap.js:2071:69)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1131:18)
at Module.load (internal/modules/cjs/loader.js:937:32)
at Function.Module._load (internal/modules/cjs/loader.js:778:12)
at Module.require (internal/modules/cjs/loader.js:961:19)
at Module.require (pkg/prelude/bootstrap.js:1719:31)
at require (internal/modules/cjs/helpers.js:92:18)
at Object.<anonymous> (C:\snapshot\visortokey\node_modules\robotjs\index.js:1:77)
at Module._compile (pkg/prelude/bootstrap.js:1794:22)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)

当我在我的项目中删除对robotjs的调用时,它工作得很好。

我的 package.json 中有以下内容

{
"name": "project",
"bin": "src/app.js",
"version": "1.0.0",
"description": "",
"main": "src/app.js",
"scripts": {
"start": "node src/app.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"pkg": {
"assets": [
  "templates/**/*",
  "public/**/*"
],
"targets": [
  "node14"
],
"outputPath": "dist"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"hbs": "^4.1.2",
"http": "0.0.1-security",
"nodemon": "^2.0.14",
"path": "^0.12.7",
"pkg": "^5.3.3",
"robotjs": "git+https://github.com/octalmage/robotjs.git",
  "socket.io": "^4.3.1"
},
"devDependencies": {}
}

当我运行 pkg 时。--debug,它显示的最后一个错误是:

[debug] prebuild-install 

 failed[C:\Users\Documents\visortokey\node_modules\robotjs\build\Release\robotjs.node 
 ]:
 Error: spawnSync 
C:\npm\node_modules\pkg\node_modules\.bin\prebuild-install 
ENOENT

有任何想法吗?我尝试更新robotjs prebuild-install,在我的dist文件夹中添加robotjs的本地资源,从npm而不是github安装robotjs,将robotjs模块添加为资产,但无论我做什么,我都无法解决这个问题。

4

0 回答 0