Après avoir installé un module natif via npm pour une utilisation avec Electron (atom Shell), j'essaie d'exécuter la reconstruction d'électrons:
>>./node_modules/.bin/electron-rebuild
à partir du répertoire du projet, b "~/project_js/React-Redux-Py-Electron /" (qui contient node_modules /). Mais je reçois ce message d'erreur:
>>Unable to find Electron app at ~/project_js/React-Redux-Py-Electron/console.log(process.versions.modules)
Utilisation de versions:
node v6.2.0,
npm 3.8.9,
electron-prebuilt 1.2.0,
electron-rebuild 1.1.4,
qui je pense sont les dernières. À un moment donné, peut-être avant certaines mises à niveau de version, cela a fonctionné.
Quelqu'un peut-il expliquer et suggérer une solution? Merci.
Vérifiez si votre package.json a la clé "principale". Voici main.js est votre fichier JS de configuration d'électrons.
{
"name": "appname",
"version": "0.0.0",
"license": "MIT",
"main": "main.js"
}
Le nom du fichier du point d'entrée et package.json
le nom du fichier principal doit être le même. Considérez que le nom de votre fichier de point d'entrée est app.js
puis package.json
ressemble à
{
"name": "myelectron",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "electron ."
},
"author": "",
"license": "ISC",
"devDependencies": {
"electron": "^2.0.3"
}
}
Pour moi, il lançait cette erreur en raison de l'absence de package.json
fichier dans le dossier que j'exécutais la commande electron
. Assurez-vous que le dossier se compose de fichiers nommés
main.js
index.html
package.json
et définissez les variables electron
, app
et BrowserWindow
dans main.js
sont comme
const electron = require('electron');
const {app, BrowserWindow} = electron;
pour moi, le problème est dû à une incohérence avec le nom lors de l'exécution de la commande Electron
.
Assurez-vous que le nom de fichier fourni pour l'exécution doit être le même que celui fourni dans l'entrée main dans package.json, par ex. sous Mac OS /Applications/Electron.app/Contents/MacOS/Electron hello-world
correspond à hello-world.js
in main package.json
{
"name": "first_electron_app",
"version": "0.0.1",
"main": "hello-world.js",
"dependencies": {
}
}
Assurez-vous d'avoir défini un point d'entrée pour l'application. en général, c'est toujours un index.js
ou main.js
. Vous devez spécifier dans package.json
comme point d'entrée d'application. Dans ce cas, l'électron a besoin du point d'entrée et il n'a pas trouvé de package.json
et impossible de démarrer le main process
. Pour y remédier, vous pouvez ajouter la propriété main
en tant que propriété racine dans package.json comme indiqué ci-dessous,
{
"name": "YOUR_APP_NAME",
"version": "1.0.0",
"main": "main.js"
}
Une autre chose importante est de vérifier une fois les dépendances en exécutant la commande npm list --depth=0
et confirmez que electron
est là.