#javascript #node.js #electron #electron-forge
Вопрос:
У вас когда-нибудь была эта проблема:
Я работал над своим приложением в процессе разработки, и все работает нормально, но когда я создал исполняемый файл и попытался нажать на свою кнопку, возникла эта ошибка:
Это код, который выполняется, когда я нажимаю свою кнопку:
const { exec } = require("child_process");
let myBtn = document.getElementById('my-btn');
myBtn.addEventListener('click', (e) => {
e.preventDefault();
exec("node index.js", (error, data, getter) => {
if(error){
console.log("error",error.message);
return;
}
if(getter){
console.log("data",data);
return;
}
console.log("data",data);
});
});
Это ошибка:
Не распознаю модуль node
и мой файл index.js
error Command failed: node index.js
internal/modules/cjs/loader.js:1068
throw err;
^
Error: Cannot find module '/home/myUser/index.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1065:15)
at Function.Module._load (internal/modules/cjs/loader.js:911:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Это мой пакет.json
{
"name": "app",
"version": "1.0.0",
"description": "description",
"main": "main.js",
"dependencies": {
"electron-squirrel-startup": "^1.0.0",
"puppeteer": "^9.0.0"
},
"devDependencies": {
"@electron-forge/cli": "^6.0.0-beta.54",
"@electron-forge/maker-deb": "^6.0.0-beta.54",
"@electron-forge/maker-rpm": "^6.0.0-beta.54",
"@electron-forge/maker-squirrel": "^6.0.0-beta.54",
"@electron-forge/maker-zip": "^6.0.0-beta.54",
"electron": "^12.0.5"
},
"scripts": {
"test": "echo "Error: no test specified" amp;amp; exit 1",
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make"
},
"repository": {
"type": "git",
"url": ""
},
"keywords": [],
"author": "",
"license": "ISC",
"bugs": {
"url": ""
},
"homepage": "",
"config": {
"forge": {
"packagerConfig": {},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "app"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
}
}
Комментарии:
1. Я не слишком хорошо знаком с электронной кузницей, но подозреваю, что index.js не копируется или путь, с которого
exec("node index.js" ...
вызывается; он не может найти index.js .2. Думаю, вам нужно использовать путь, чтобы .exec выполнил команду в месте записи.