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

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

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

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

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

2回答

1822閲覧

npmの不要なグローバルモジュールを消してパッケージする際のサイズを縮小したい。

obon_t

総合スコア52

Electron

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

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2017/09/18 15:55

パッケージ化する際のサイズを縮小したいです。

electronを使用してパッケージ化しているのですが、グローバルのモジュールが肥大化してしまったのかファイルサイズがただの「HelloWorld」を出力するだけのものなのに300MB(.app)ほどあります。

最初にパッケージした際は60MBほどで収まっていたのですが、知らず知らずにモジュールをグローバルで入れたせいか容量が膨れ上がってしました。そこで、パッケージサイズを縮小したいと思い、使っていないであろうグローバルモジュールを消したいのですが、それを見分ける方法などありますでしょうか?

モジュールの数が多くがどのモジュール必要なのかわからなくなって困っています。

ちなみに、ローカルのモジュールは使用しておりません。
(関係あるかわかりませんが、windowsのパッケージに対応するためにwineのパッケージを入れました。)

また、モジュール削除以外の方法でもパッケージサイズ縮小の方法などありましたら、ご教授いただける幸いです。

###モジュール内容

hoge@s26:~$ npm list --depth=0 -g /usr/local/lib ├── ansicolors@0.3.2 ├── ansistyles@0.1.3 ├── archy@1.0.0 ├── call-limit@1.1.0 ├── cmd-shim@2.0.2 ├── columnify@1.5.4 ├── config-chain@1.1.11 ├── detect-indent@5.0.0 ├── editor@1.0.0 ├── electron@1.7.6 ├── electron-packager@9.1.0 ├── fs-vacuum@1.2.10 ├── init-package-json@1.10.1 ├── JSONStream@1.3.1 ├── lazy-property@1.0.0 ├── libnpx@9.6.0 ├── lockfile@1.0.3 ├── lodash._baseindexof@3.1.0 ├── lodash._baseuniq@4.6.0 ├── lodash._bindcallback@3.0.1 ├── lodash._cacheindexof@3.0.2 ├── lodash._createcache@3.1.2 ├── lodash.clonedeep@4.5.0 ├── lodash.restparam@3.6.1 ├── lodash.union@4.6.0 ├── lodash.uniq@4.5.0 ├── lodash.without@4.4.0 ├── meant@1.0.0 ├── n@2.1.8 ├── node-gyp@3.6.2 ├── nopt@4.0.1 ├── npm@5.4.2 ├── npm-cache-filename@1.0.2 ├── npm-install-checks@3.0.0 ├── npm-lifecycle@1.0.2 ├── npm-registry-client@8.4.0 ├── npm-user-validate@1.0.0 ├── opener@1.4.3 ├── pacote@6.0.2 ├── read-cmd-shim@1.0.1 ├── read-installed@4.0.3 ├── read-package-tree@5.1.6 ├── sha@2.0.1 ├── sorted-object@2.0.1 ├── sorted-union-stream@2.1.3 ├── text-table@0.2.0 ├── unpipe@1.0.0 └── worker-farm@1.5.0

###補足情報(言語/FW/ツール等のバージョンなど)
・Ubuntu 16.04.3 LTS
・npm(5.3.0)
・n
・node.js(8.5.0)
・electlon(1.7.6)

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

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

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

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

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

guest

回答2

0

ベストアンサー

npmのローカルモジュールはパッケージの肥大化に影響しますが、グローバルモジュールがElectronのパッケージ肥大化に影響することは無いでしょう。
一度プロジェクトのnode_modulesフォルダを削除してnpm installし直してみるとか、あるいはnpm install --productionを実行してdependenciesのパッケージのみ(devDependenciesは入らない)インストールされた状態にしてみるとどうでしょうか。

他にはelectron-packagerでパッケージする場合、たいていはelectron-packager .とプロジェクトのフォルダを指定するため不要なフォルダをパッケージに含んでしまい肥大化することがあります。

投稿2017/09/19 02:34

shimitei

総合スコア799

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

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

obon_t

2017/10/12 14:42

ご回答ありがとうございます! ご返事遅くなって申し訳ありません。 おっしゃる通り、プロジェクトのフォルダを指定するため不要なフォルダをパッケージに含んでしまい肥大化していたようです。 今まで、グローバルモジュールはパッケージした際、すべて含まれてしまうものだと、勘違いしてました..。 ありがとうございました。
guest

0

とりあえず、まずはバックアップ(今インストールしているパッケージリスト)をとりましょう。

npm list --depth=0 -g > /home/hode/Desktop/package.bak

そしてそれぞれのパッケージに関して、npm show コマンドで説明を見て、
「使ってない気がする」
というものは、removeして、そのあとelectron製のアプリが起動するか確認。
起動を確認したら、またいらなそうなパッケージを npm show で確認し、electron製のアプリが起動するか確認……というのを地道に繰り返してください。

(関係あるかわかりませんが、windowsのパッケージに対応するためにwineのパッケージを入れました。)

今回に関しては関係ないです。


ここからいくつか偏見を申し上げます。ご容赦ください。

electron に関しては必須ですね。

lodashって使ってます? JavaScriptで関数型プログラミングしているのならばその限りではないですが、特にそういったことをしていなければ必要ないと思われます。なので lodash. 系はremoveしていいと思います。

n を入れてるようですが、使っていないのでは?


私が指摘できるのはこれくらいでしょうか、拙い回答で申し訳ございません。

以上、参考になれば幸いです。

投稿2017/09/19 02:53

manzyun

総合スコア2244

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問