Электронное приложение в производственном броске: ошибка команды не удалась: узел index.js но в разработке работает нормально

#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 выполнил команду в месте записи.