2

electron-packager .node_modules没有从Darwin 平台安装所有模块。

尝试启动此类打包的应用程序时,会出现以下错误:

Uncaught Exception:
Error: Cannot find module 'sudo-prompt'
    at Module._resolveFilename (module.js:470:15)
    at Function.Module._resolveFilename

两者package.jsonnode_modules在当前文件夹中。

我试图node_modules完全删除并刷新它们,npm install -production但它没有帮助正确打包应用程序。

包.json

"main": "app.js",
  "scripts": {
    "start": "electron ."
  },
  "devDependencies": {
    "chokidar": "^1.7.0",
    "electron": "^1.6.11",
    "filesize": "^3.5.6",
    "jquery": "^3.2.1",
    "keymaster": "^1.6.2",
    "open": "0.0.5",
    "peity": "^3.2.1",
    "sudo-prompt": "^7.1.0",
    "underscore": "^1.8.3",
    "unzip-stream": "^0.1.2"
  },
  "dependencies": {
    "chart.js": "^2.6.0",
    "filesize": "^3.5.10",
    "open": "0.0.5",
    "sudo-prompt": "^7.1.0"
  }

打包的应用程序electron-packager只有chart.js 所有其他依赖项都丢失了。

.app/Contents/Resources/app $ npm ls
└─┬ chart.js@2.6.0
  ├─┬ chartjs-color@2.1.0
  │ ├─┬ chartjs-color-string@0.4.0
  │ │ └── color-name@1.1.2
  │ └── color-convert@0.5.3
  └── moment@2.18.1
4

1 回答 1

3

以防万一有人遇到类似问题:

删除重复的dependencies模块devDependencies解决了这个问题。

于 2017-06-28T16:27:54.657 回答