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

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

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

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

Node.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1006閲覧

Electron builderによるインストーラーの作成について

dakarann104

総合スコア21

Electron

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

Node.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/08/29 08:17

編集2018/08/31 06:42

Electronアプリを作成し、インストーラーの作成を行っています。
Electron builderでセットアップファイルを出力することはできたのですが、
Node moduleが省かれた状態でインストールされてしまいます。
htmlやcss、JavaScriptは問題なく読み込まれています。

以下のコマンドで作成していますが、なにかコマンドが足りないのでしょうか...

command

1electron-builder . test-win32-x64 --platform=win --arch=x64

package.jsonを作成して読み込む方法でも上手く行きません...

json

1{ 2 "name": "test", 3 "version": "0.1.0", 4 "description": "test", 5 "main": "server.js", 6 "scripts": { 7 "test": "echo \"Error: no test specified\" && exit 1", 8 "dev": "electron ./irohanote", 9 10 "pack:win": "electron-builder ./dist/test-win32-x64 --platform=win --arch=x64" 11 }, 12 "author": "", 13 "license": "BSD", 14 "dependencies": { 15 "electron": "^2.0.7", 16 "express": "^4.16.3", 17 "gulp": "^3.9.1", 18 "jquery": "^2.2.4" 19 }, 20 "build": { 21 "appId": "com.test.app", 22 "win": { 23 "target": "nsis", 24 "icon":"assets/Icon.ico" 25 } 26 } 27}

開発環境はWindowsになります。

/app/ (Electron アプリ)
|-- package.json
|-- main.js
|-- index.html
|-- node_modules
|-- etc...
/assets/ (アイコンファイル)
|-- icon.ico
/dist/ (パッケージングされたファイルを出力)
/package.json //これでnpm run pack:win

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

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

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

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

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

Meganezaru

2018/08/30 01:15

BuildされたElectronのアプリケーションが、実行できないということですか?
dakarann104

2018/08/30 01:20

インストール後実行できるのですが、使用するモジュールが無いとエラーが出ます。(例:express)そもそもbuildの段階でnode_modulesが除外されている?みたいです
Meganezaru

2018/08/30 01:32

この手の仕組みは、node_modulesをbundle(一つのjavascriptにかき集める)してしまうと思うので、node_modulesは除外されるんだと思います。npm run pack:winでビルドできる雰囲気ですが、どうでしょう?
dakarann104

2018/08/30 01:38

npm run pack:winでビルドを行ってみましたがだめですね...
dakarann104

2018/08/30 01:39

だめというか同じようにnode_modulesがないですね
Meganezaru

2018/08/30 01:45

実行も同じようにNGですか?
dakarann104

2018/08/30 01:47

同じように実行はできるのですがnode_modulesエラーが出ます
Meganezaru

2018/08/30 02:10

インストールした結果として、多分・・・node_modulesができないのは正しいと思います。Buildがうまく行っていない原因を探ったほうが良いと思います。Electron Builderの情報を覗いてみましたが、filesにBuild対象のファイル群を含める必要がありますね。Electron化しようとしている、元のプロジェクトを何で作成されたかは、わかりませんが、そちらでPackする(node_modules下の関連jsが一つのjavascriptファイルにまとめられる)スクリプトがあれば、その結果をfilesに含める必要がありそうです。
dakarann104

2018/08/30 02:17

electron pakagerでパッケージングして行ってましたが...そうではなくてwebpackかRollupなどを使ってnode_modules下をまとめるということですかね
Meganezaru

2018/08/30 02:35

そんなイメージだと思います。たとえば、react-create-appでプロジェクトをつくっているなら、npm run buildで、packされた結果が、buildフォルダに作成されますが、他のやりかたでも、同様な仕組みがあると思います。electron packagerに機能があるのであれば、そこをうまく動かすことになるかもです。
dakarann104

2018/08/30 02:43

まだ試したことが無い部分ですので、ちょっとやってみたいと思います!ありがとうございました。
Meganezaru

2018/08/30 05:16

後で気づいたんですが、もともと、見つからないモジュールって、expressなんですね・・・私の話は、フロントエンド周りなので、ちょっと事情が変わりそうですね。私も、同じようなことをやりたいと思っているので、改めて調べてみます。何かわかれば回答の方に掲載します。間に合わなかったら、ごめんなさいw
dakarann104

2018/08/31 07:04

いえいえ...色々お答えしただいて感謝感激です。ただexpressだけじゃなくて他のすべてのnode_modulesを読み込んでないのです...
guest

回答1

0

ベストアンサー

electronが、dependencies側に登録されていることが原因かもしれません。

一度削除して、npm i -D electron(またはyarn add --dev electron)した後に、
electron-builderを実行してみてください。

私の環境は、macですが、expressを含んだ状態で実行できました。

追記

IntelliJ IDEAのNode.js Express Appで生成したプロジェクトにElectronに必要なコードと設定を追加したのみです。下記のpackage.jsonで、ビルドしました。

ビルドの実行は、yarn packmacです。
./distフォルダの下に、インストールファイルができます。

buildの部分は、Windowsに合わせて変更する必要がありますが、動作すると思います。

json

1{ 2 "name": "electron-express", 3 "version": "0.0.0", 4 "private": true, 5 "scripts": { 6 "start": "node ./bin/www", 7 "packmac": "build --mac --x64" 8 }, 9 "dependencies": { 10 "cookie-parser": "~1.4.3", 11 "debug": "~2.6.9", 12 "express": "~4.16.0", 13 "http-errors": "~1.6.2", 14 "morgan": "~1.9.0", 15 "pug": "2.0.0-beta11" 16 }, 17 "devDependencies": { 18 "electron": "^2.0.8", 19 "electron-builder": "^20.28.3" 20 }, 21 "main": "main.js", 22 "build": { 23 "appId": "com.example", 24 "mac": { 25 "target": "dmg" 26 }, 27 "directories": { 28 "output": "dist" 29 } 30 } 31}

投稿2018/08/30 07:12

編集2018/08/31 07:02
Meganezaru

総合スコア715

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

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

dakarann104

2018/08/31 06:23

すみません...あまりよくわかっていないのですが、 「Electron」アプリの中身のdependencies側をdevDependencies側に登録し直すということでしょうか? それともアプリ外の別pacakge.jsonでelectron-builderを実行することは分かっているのですが、そこの部分を変更するのでしょうか? 抽象的な質問で申し訳ないですがよろしくお願いします
Meganezaru

2018/08/31 06:28

ひょっとして、元のアプリのプロジェクトとは別にElectronをセットアップしている感じでしょうか? 元のアプリのプロジェクトに対して、npm i -D electronして、electron関連のコードを追加して、作業すればよいと思います。 もしよければ、ファイル構造や、できる範囲で、他のソースを乗せてもらうとよいかも。
Meganezaru

2018/08/31 07:00

やはり、わかれていましたね。 その方法でも、できるのかもしれないですが、 いろいろ駆使しなければならないようなので、 シンプルな方法として、一度、アプリプロジェクトに直接builder関連を追加する方法を試してみてはいかがですか? この方法であれば、electron-builderのみでパックも実行されるので、簡単です。 回答に、私が利用したpackage.jsonを追記しておきました。 参考になれば。
dakarann104

2018/08/31 07:04

そうですね、その方向で試してみます!
dakarann104

2018/08/31 07:43

ちゃんと読み込みました!! 色々とご回答ありがとうございました!! 頭を切り替えてシンプルに考えれば良かったですね..
Meganezaru

2018/08/31 07:50

解決してよかったです! 問題にぶつかってる時は、なかなかシンプルに考えられないですよね(^_^;)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問