0

我用 tensorflow js 构建了这个小应用程序。npm start我可以在 Windows 10 上使用npm run make. 我收到以下错误:

Uncaught Error: The specified module could not be found. \\?\C:\Users\teste\AppData\Local\my-app\app-1.0.0\resources\app.asar.unpacked\node_modules\@tensorflow\tfjs-node\lib\napi-v5\tfjs_binding.node
    at process.func (electron/js2c/asar.js:140)
    at process.func [as dlopen] (electron/js2c/asar.js:140)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1016)
    at Object.func (electron/js2c/asar.js:140)
    at Object.func [as .node] (electron/js2c/asar.js:149)
    at Module.load (internal/modules/cjs/loader.js:816)
    at Module._load (internal/modules/cjs/loader.js:728)
    at Module._load (electron/js2c/asar.js:717)
    at Function.Module._load (electron/js2c/asar.js:717)
    at Module.require (internal/modules/cjs/loader.js:853)

当我进入文件时C:\Users\teste\AppData\Local\my-app\app-1.0.0\resources\app.asar.unpacked\node_modules\@tensorflow\tfjs-node\lib\napi-v5\tfjs_binding.node,文件就在那里并且完全可以访问

我正在使用电子锻造运行 Windows 10、节点v12.13.0、电子8.2.1

我的 package.json 是:

{
  "name": "my-app",
  "productName": "my-app",
  "version": "1.0.0",
  "description": "My Electron application description",
  "main": "src/index.js",
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make",
    "publish": "electron-forge publish",
    "lint": "echo \"No linting configured\"",
    "install": "electron-rebuild --pre-gyp-fix"
  },
  "keywords": [],
  "author": "guzeda",
  "license": "MIT",
  "config": {
    "forge": "./forge.config.js"
  },
  "dependencies": {
    "@electron-forge/plugin-auto-unpack-natives": "^6.0.0-beta.50",
    "@tensorflow/tfjs": "^1.5.1",
    "@tensorflow/tfjs-node": "^1.5.1",
    "electron-reload": "^1.5.0",
    "electron-squirrel-startup": "^1.0.0",
    "face-api.js": "^0.22.2",
    "jquery": "^3.4.1",
    "material-design-lite": "^1.3.0"
  },
  "devDependencies": {
    "@electron-forge/cli": "^6.0.0-beta.50",
    "@electron-forge/maker-deb": "^6.0.0-beta.50",
    "@electron-forge/maker-rpm": "^6.0.0-beta.50",
    "@electron-forge/maker-squirrel": "^6.0.0-beta.50",
    "@electron-forge/maker-zip": "^6.0.0-beta.50",
    "electron": "8.2.1",
    "electron-rebuild": "^1.10.1"
  }
}

我的 forge.config 是:

module.exports = {
    makers: [
        {
            name: '@electron-forge/maker-squirrel',
            config: {
                name: "my-app"
            }
        }
    ],
    plugins: [
        ['@electron-forge/plugin-auto-unpack-natives']
    ],
    packagerConfig:{asar:true}
}

我很感激任何帮助

4

2 回答 2

0

只需仔细检查您的代码 - 与您的文件夹结构有关。

如果我可能会问,你为什么使用 tensorflow.js 而不是 python 等?

于 2020-04-23T14:48:05.017 回答
0

我刚刚找到了解决方案。发生这种情况是因为 dll 需要与萌芽位于同一文件夹中。该错误消息非常具有误导性。

最后,有必要编写一些安装后脚本以将正确的 dll 复制到文件夹中,并且效果很好

于 2020-04-17T18:57:53.480 回答