質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

解決済

1回答

2672閲覧

electronでパッケージングして作成したアプリが動かない(エラー:Cannot find module)

tama-

総合スコア16

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

1クリップ

投稿2018/12/21 08:17

編集2018/12/21 09:54

-------package.json修正しました、ディレクトリ構成図追加しました-------

electronでアプリケーションを作成しパッケージングを行ったのですが、パッケージングして作成されたexeファイルを開くと「Cannot find module」のエラーがでてアプリケーションが動かない状態になっています。
※Cannot find moduleのエラーは、コーディング中で使用しているモジュール「fs-extra」と「jquery」のふたつがエラーとして出ています。
エラーはデベロッパーツールで確認しています。

パッケージングには、npmで取得したelectron-packagerを使用しています。
使用コマンド:npm run pack:win(electron-packager ./src --platform=darwin,win32 --arch=x64 が実行される)

○環境
・os
windows10

・node:v10.14.0
・npm:6.4.1
・package.json↓

json

1{ 2 "name": "img-upload", 3 "version": "1.0.0", 4 "description": "", 5 "main": "index.js", 6 "scripts": { 7 "build-sass": "node-sass -w --source-map true ./src/css/style.scss ./src/css/style.css", 8 "start": "electron ./src", 9 "pack:win": "build --win --x64" 10 }, 11 "keywords": [], 12 "author": "", 13 "license": "ISC", 14 "dependencies": { 15 "fs-extra": "^7.0.1", 16 "jquery": "^3.3.1", 17 "linq": "^3.1.1" 18 }, 19 "devDependencies": { 20 "electron": "^4.0.0", 21 "electron-builder": "^20.38.4" 22 }, 23 "build": { 24 "appId": "com.example", 25 "win": { 26 "target": "nsis" 27 }, 28 "directories": { 29 "output": "dist" 30 } 31 } 32}

○ディレクトリ構成図
assets
├win
└favicon.ico
└osx
└ImgUpload.icns
dist(ここにパッケージング後のデータを格納予定)
node_modules
└モジュールいろいろ
src
└index.js、package.jsonなど
package.json(説明書きしているjsonはこちらのファイルです。)
package-lock.json
yarn.lock

ローカルでnpm start コマンドで開いている時はエラーが発生せず、問題なく可動します。

fs-extra、jqueryのモジュールは元々ローカルインストールをしていましたが、
エラーが出たため試しにグローバルインストールを行ってみましたが結果は変わりませんでした。

私の調べた知識では、package.json内のdependenciesに記述しているモジュールは一緒にパッケージングされると思ったのですが、「fs-extra」と「jquery」のみCannot find moduleのエラーが発生してしまいます。。。

お力添えよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

electron-packagerは、electron-builderにマージされていて、多分メンテされていないモジュールになっていると思います。(ごめんなさい、未確認です)

electron-builderで、パックも実行してくれるはずですので、

"pack:win": "build --win --x64"
"build": { "appId": "com.example", "win": { "target": "nsis" }, "directories": { "output": "dist" } }

として、ビルド(npm run pack:win)してみてください。

投稿2018/12/21 09:22

Meganezaru

総合スコア715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tama-

2018/12/21 09:44 編集

ご回答ありがとうございます! 「electron-packagerは、electron-builderにマージ」の件初めて知りました、ありがとうございますm(_ _)m electron-packagerとelectron-builderをアンイストールしてelectron-builderのみ再インストールし、教えていただいた形でpackage.jsonを修正しコマンド入力しましたところ、以下のエラーがでました。 「Error: Application entry file "index.js" in the "私のパス\ImgUpload\dist\win-unpacked\resources\app.asar" does not exist. Seems like a wrong configuration.」 index.jsは別途作成する必要があるのでしょうか。 ※ルートディレクトリにはmain.jsが存在し、アプリケーション用のindex.jsはsrcディレクトリ内に存在する形です。
tama-

2018/12/21 09:54

ディレクトリ構成図を追加しました!
Meganezaru

2018/12/21 10:11

main.jsが、electron関係の実装にあたるのであれば、index.jsと記載されている部分("main")をmain.jsに書き換えれば良いはずです。もし、index.jsにelectron実装を含んでいるのであれば、src/index.jsで良いと思います。 現時点で、electronに対応するための実装がないようであれば、その部分の追加が必要です。 イメージとしては、electronのモジュールをロードして、 それを利用して、専用ブラウザを起動し、アプリの実体に関連づけるような感じです。 詳細は、一度調べてみてください。 わからない部分があれば、改めて、electronの実装に関する質問をされるのが良いと思います( ´ ▽ ` )
tama-

2018/12/25 01:26

お返事遅れてしまい申し訳ありませんm(_ _)m どうやら勘違いをしていたようで、今までrootディレクトリに必要なモジュールを置いていたこと、rootディレクトリのpackage.jsonを編集していたことが原因でしたm(_ _)m 自信で組んだプログラムが置いてあるsrcディレクトリに必要なモジュールを起き、package.jsonを編集したことでビルドができるようになりました! この度はご助言ありがとうございました!!!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問