node.js - Electron 更新程序 : Can not find module 'debug'

标签 node.js angular sqlite electron

我正在使用 Electronjs 开发桌面应用程序(windows/mac)。我试图使用 Electron 更新器来实现自动更新功能,因为我正在使用 Electron 构建器来构建。

我能够为我的应用程序生成 .exe 文件,但在尝试安装时,它抛出错误:“找不到模块“调试””。请查看随附的屏幕截图Auto-updater-error .

没有 Electron 更新程序的实现,我的应用程序运行良好。当我在 index.js 中导入 autoUpdator 时,开始出现该错误。我正在使用 autoUpdator,如下所示:

const {autoUpdater} = require("electron-updater");
autoUpdater.on('update-downloaded', (ev, info) => {
  setTimeout(function() {
    autoUpdater.quitAndInstall();  
  }, 5000)
})
app.on('ready', ()=> {
  autoUpdater.checkForUpdates();
});

请查找下面的库描述:

  • “Electron 更新程序”:“^4.0.6”
  • “Electron ”:“^3.0.6”
  • “Electron 构建器”:“^20.38.4”

我点击了以下链接:

Electron builder Auto Update

electron builder using local server

我是 Electron js 的新手,正在积极寻求您的支持。

根据要求,请在下面找到我的构建配置:

"build": {
    "appId": "com.****.*****",
    "productName": "********",
    "directories": {
      "output": "build"
    },
    "publish": [
      {
        "provider": "generic",
        "url": "http://127.0.0.1:4080/"
      }
    ],
    "nsis": {
      "oneClick": false,
      "perMachine": true,
      "allowElevation": true,
      "allowToChangeInstallationDirectory": true,
      "deleteAppDataOnUninstall": true,
      "createDesktopShortcut": true
    },
    "win": {
      "target": "nsis"
    },
    "files": [
      "!**/.vscode",
      "!**/build",
      "!**/config",
      "!**/assets/data",
      "!**/src"
    ],
    "extraResources": [
      {
        "from": "src/assets/data",
        "to": "dist/assets/data",
        "filter": "database*"
      }
    ]
  },

最佳答案

排除列表中的行 "!**/src" 是罪魁祸首。

  1. 许多 Node 模块都会有 "src" 文件夹,这些文件夹必须与您的应用程序源代码一起打包/捆绑。
  2. 如果您观察“node_modules”下的“debug”模块文件夹,它有一个已被上述规则排除的“src”文件夹。
<小时/>

建议:如果您的应用源文件夹为 "src",请将其重命名为 "source" 等其他名称(由您控制​​),但确保不排除 node_modules"src" 文件夹(重命名这些文件夹不在您的控制范围内,因为这可能会破坏模块的完整性,并且它们也会在新的 npm install 上被覆盖)

关于node.js - Electron 更新程序 : Can not find module 'debug' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54128383/

相关文章:

angular - 将 angular 4 到 7 http 升级为 httpclient

Angular:从异步获取数据;我不应该强制更改检测

javascript - 如何在 Angular Material 中制作所需的下拉列表?

android - SQLite 初学者问题。安卓内容解析器。更新(...)插入(...)

java - 不通过执行 Java 应用程序在 ARM 上加载 JDBC 库

javascript - 注册 Passport.js 和 Sails.js 后如何重定向到特定位置?

javascript - 如何从服务器端创建可重定向的 strip 支付网址?

node.js - Azure Bot - 通过 REST API 进行通信

node.js - 如何检测RSA私钥在 Node 中有密码

android - Android Studio 中的 "There is no default constructor available in android.database.sqlite.SQLitepenhelper"