Electron(atom Shell)で使用するためにnpm経由でネイティブモジュールをインストールした後、electron-rebuildを実行しようとしています:
>>./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,
私はそれがすべて最新だと信じています。一時的に、おそらくいくつかのバージョンのアップグレードの前に、これは機能しました。
誰でも修正を説明して提案できますか?ありがとう。
Package.jsonに「メイン」キーがあるかどうかを確認します。ここで、main.jsはElectron Configuration JSファイルです。
{
"name": "appname",
"version": "0.0.0",
"license": "MIT",
"main": "main.js"
}
エントリポイントファイル名と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"
}
}
私にとっては、electron
コマンドを実行していたフォルダーにpackage.json
ファイルがないため、このエラーがスローされていました。フォルダーが次の名前のファイルで構成されていることを確認してください
main.js
index.html
package.json
main.js
の変数electron
、app
、およびBrowserWindow
を定義します
const electron = require('electron');
const {app, BrowserWindow} = electron;
私にとっては、Electron
コマンドを実行したときの名前との不一致が原因で問題が発生しました。
実行用に提供されるファイル名は、package.jsonのmainエントリで提供されるファイル名と同じにする必要があります。 Mac OSでは/Applications/Electron.app/Contents/MacOS/Electron hello-world
はmain package.jsonのhello-world.js
と一致します
{
"name": "first_electron_app",
"version": "0.0.1",
"main": "hello-world.js",
"dependencies": {
}
}
アプリケーションのエントリポイントを定義したことを確認してください。通常、常にindex.js
またはmain.js
です。 package.json
でアプリケーションのエントリポイントとして指定する必要があります。この場合、電子はエントリポイントを必要としますが、package.json
から見つからず、main process
を開始できませんでした。修正するには、以下に示すようにpackage.jsonのルートプロパティとしてmain
プロパティを追加できます。
{
"name": "YOUR_APP_NAME",
"version": "1.0.0",
"main": "main.js"
}
別の重要なことは、コマンドnpm list --depth=0
を実行して依存関係を一度確認し、electron
が存在することを確認することです。