Не удается найти NodeJs модуля (ов) с Electron после сборки
У меня есть электронное приложение, которое работает с npm start electron .
на моем Mac. Однако, когда я собрал его, используя электронный упаковщик для компиляции для 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();
1 ответ
Не понравилось --prune=true
в команде сборки. Я установил это в false, и это, кажется, работает.