2017-03-07 9 views
0

まず、ウェブパックや電子ビルダー、またはその組み合わせのために私が持っている問題があるかどうかわかりません。main.jsのnode-modulesをelectron-builderとwebpackを使用して使用する

問題に。 開発用にビルドすると、package.jsonファイル{"main" : "app/main.js"}で指定されたmain.jsファイルに、インストールされたノードモジュールを使用することができます。

しかし、私は電子ビルダーを使用してインストーラを作成しました。インストーラを使用してアプリケーションをインストールすると、アプリケーションを起動するときに次のエラーメッセージが表示されます。 Error Message main.js.で必要なノードモジュールが見つからないため、このメッセージが表示されます。だから私はどのようにそれらを利用できるようにするのですか?

私は:)

Package.jsグーグルで私たちだけで、より良い私よりも賢く、誰かがあると思います。

{ 
 
    "main": "app/main.js", 
 
    "scripts": { 
 
    "hot-server": "node hot-server.js", 
 
    "build-bundle": "rimraf app/dist.release && better-npm-run build-bundle", 
 
    "start": "better-npm-run start", 
 
    "start-hot": "better-npm-run start-hot", 
 
    "backend": "node backend-dummy.js", 
 
    "dist-win": "npm run build-bundle && rimraf dist && build --win --ia32", 
 
    "dist-mac": "npm run build-bundle && rimraf dist && build --mac" 
 
    }, 
 
    "betterScripts": { 
 
    "start": { 
 
     "command": "electron ./", 
 
     "env": { 
 
     "NODE_ENV": "production" 
 
     } 
 
    }, 
 
    "start-hot": { 
 
     "command": "electron ./", 
 
     "env": { 
 
     "HOT": 1, 
 
     "NODE_ENV": "development" 
 
     } 
 
    }, 
 
    "build-bundle": { 
 
     "command": "webpack --config webpack.config.production.js --progress --profile --colors", 
 
     "env": { 
 
     "NODE_ENV": "production" 
 
     } 
 
    } 
 
    }, 
 
    "bin": { 
 
    "electron": "./node_modules/.bin/electron" 
 
    }, 
 
    "build": { 
 
    "appId": "app", 
 
    "files": [ 
 
     "dist.release/*", 
 
     "dist.resources/*", 
 
     "main.js", 
 
     "thirdparty/*", 
 
     "app.html" 
 
    ], 
 
    "extraFiles": [ 
 
     "lang/*", 
 
     { 
 
     "from": "build/extra", 
 
     "to": "./", 
 
     "filter": "**/*" 
 
     } 
 
    ], 
 
    "asar": true 
 
    }

+0

Electron-packagerを使用していますか?また、あなたのpackage.jsonのdevDependenciesセクションに電子ログがありますか? –

+0

いいえElectron-packagerは使用しません。電子ログと電子アップデータは依存関係にあります。 –

+0

もう少し掘り下げた後は、私のノードモジュールはすべてbrowserifyを使ってパッケージ化され、そのバンドルに隠されているということと関係していると思います。だから私はバンドルの外に必要なノードモジュールを追加するか、バンドルの中にアクセスするかの2つの選択肢があります。 –

答えて

0

だから私は私の問題への解決策を見つけたが。私は私がこのプロジェクトを見たんでした: 彼らはmain.development.jsのためのすべてのnode_modulesが含まれているmain.jsファイルにファイルをバンドル特別webpack.config.electron.jsファイルを持っているhttps://github.com/chentsulin/electron-react-boilerplate

必要なものすべて。電子プログラムが起動すると、このmain.jsバンドルが実行されます。これを実現するには、webpack.config.electron.jsを実行するpackage.jsonファイルにビルドスクリプトを追加する必要があります。

私は説明するよりも、リンクされたプロジェクトを見て解決する方法が分かりやすいと思います。

関連する問題