通过npm安装本机模块与Electron(原子壳)一起使用后,我正在尝试运行电子重建:
>>./node_modules/.bin/electron-rebuild
从项目目录,b“〜/ project_js / React-Redux-Py-Electron /”(其中包含 node_modules /)。但我收到此错误消息:
>>Unable to find Electron app at ~/project_js/React-Redux-Py-Electron/console.log(process.versions.modules)
使用版本:
node v6.2.0,
npm 3.8.9,
electron-prebuilt 1.2.0,
electron-rebuild 1.1.4,
我认为这是最新的。有一段时间,也许在某些版本升级之前,这有效。
任何人都可以解释并建议修复吗?感谢。
答案 0 :(得分:71)
检查你的package.json是否有" main"键。 这里main.js是您的Electron Configuration JS文件。
{
"name": "appname",
"version": "0.0.0",
"license": "MIT",
"main": "main.js"
}
答案 1 :(得分:9)
入口点文件名和package.json
主文件名应该相同。假设您的入口点文件名为app.js
,那么package.json
就像
{
"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"
}
}
答案 2 :(得分:8)
对我来说,由于我运行package.json
命令的文件夹中缺少electron
文件,因此抛出此错误。确保该文件夹包含名为
main.js
index.html
package.json
并在electron
中定义变量app
,BrowserWindow
和main.js
为
const electron = require('electron');
const {app, BrowserWindow} = electron;
答案 3 :(得分:2)
对我来说,问题是由于运行Electron
命令时与名称不一致引起的。
确保为run提供的文件名应与package.json中 main 条目中提供的文件名相同,例如在Mac OS上
/Applications/Electron.app/Contents/MacOS/Electron hello-world
与主 package.json中的hello-world.js
匹配
{
"name": "first_electron_app",
"version": "0.0.1",
"main": "hello-world.js",
"dependencies": {
}
}
答案 4 :(得分:1)
确保已为应用程序定义了入口点。通常,它始终是index.js
或main.js
。您需要在package.json
中指定作为应用程序的入口点。在这种情况下,发生的事情是,电子需要进入点,并且电子没有从package.json
中找到,因此无法启动main process
。要对其进行修复,可以按如下所示将main
属性添加为package.json中的根属性,
{
"name": "YOUR_APP_NAME",
"version": "1.0.0",
"main": "main.js"
}
另一个重要的事情是,只需运行命令npm list --depth=0
检查一次依赖关系,并确认electron
在其中。
答案 5 :(得分:-1)
npm run build && npm start
为我修好了