node.js - 构建后无法使用 Electron 找到模块 NodeJ

标签 node.js electron electron-packager

我有一个 Electron 应用程序,可以在我的 Mac 上与 npm start electro . 配合使用。但是,当我使用 electro-packager 构建它并为 Mac 编译它时,在打开编译的应用程序文件时出现以下错误

bootstrap.min.css Failed to load resource: net::ERR_FILE_NOT_FOUND
module.js:487 Uncaught Error: Cannot find module './node_modules/jquery/dist/jquery.min.js'
    at Module._resolveFilename (module.js:485:15)...
module.js:487 Uncaught Error: Cannot find module 'node-wifi'
    at Module._resolveFilename (module.js:485:15)

我相信这与设置正确的文件路径有关,但我在我的index.js和functions.js文件中尝试了以下操作,但它不起作用:

var path = require('path');

module.paths.push(path.resolve('node_modules'));
module.paths.push(path.resolve('../node_modules'));

下面是其他相关文件和命令:

package.json:

  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "electron ."
  },
  "devDependencies": {
    "electron": "^1.8.4",
    "electron-packager": "^12.0.0"
  },
  "dependencies": {
    "electron-packager": "^12.0.0",
    "bootstrap": "^4.0.0",
    "electron-reload": "^1.2.2",
    "electron-store": "^1.3.0",
    "jquery": "^3.3.1",
    "node-wifi": "^2.0.4",
    "sweetalert2": "^7.18.0"
  }

构建命令:

electron-packager . --overwrite --platform=darwin --arch=x64  --prune=true --out=release-builds

index.html

<!DOCTYPE html>
  <html>
    <head>
      <meta charset="UTF-8">
      <title>Hello World!</title>
      <link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
      <script>window.$ = window.jQuery = require('jquery');</script>
      <script src="functions.js"></script>
      <script type='text/javascript'>
      // On click we should send event to close window.
    </script>
    </head>

index.js(依赖项)

const {app, BrowserWindow , ipcMain, dialog} = require('electron')
const path = require('path');
const url = require('url');

functions.js(依赖项)

const { ipcRenderer } = require("electron");
var child_process = require('child_process');
var wifi = require('node-wifi');
var swal = require('sweetalert2');
const Store = require('electron-store');
const store = new Store();

最佳答案

它不喜欢构建命令中的--prune=true。我将其设置为 false,它似乎有效。

关于node.js - 构建后无法使用 Electron 找到模块 NodeJ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49660125/

相关文章:

mysql - AWS 的 NodeJS 部署容量规划

javascript - 子渲染器electronicjs中对 Node 的访问失败

angular - Electron/electron-packager Angular 桌面应用程序 - 对 localhost 服务器的 http 请求被拒绝和阻止

javascript - Package.json在打包分发中的作用

javascript - Adsense/Bing Ads 可以在 Node Webkit 桌面应用程序中使用吗?

javascript - couchdb/nano 多部分插入

javascript - React js导入大数据文件(json)

node.js - 调试 Electron/Node 应用程序时如何显示网络面板

angular - 将JSON数据从Angular组件传递到Electron main.ts

node.js - Electron-packager - "path"参数必须是字符串类型。接收类型未定义