17
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

npm v3 で Electron のパッケージサイズが大きくなる

Last updated at Posted at 2016-04-23

問題点

npm v3を使っていると、electron-packager や electron-prebuiltが依存している module がビルドしたパッケージに含まれてしまい、ファイルサイズが大きくなってしまう

原因

npm v3 では、以下の画像のように node_modules にフラットに依存パッケージが展開されます。

node_modules直下の状況

あるパッケージ modAmodB, modC に依存している時、npmのバージョンによってフォルダ構成が以下のように変わります。

  • npm v2 の場合
.
└── node_modules
    └── modA
        ├── modB
        └── modC
  • npm v3 の場合
.
└── node_modules
    ├── modA
    ├── modB
    └── modC

electronのアプリをパッケージ化する際、electron-packager の ignore プロパティにて electron-packager や electron-prebuilt をパッケージ対象から除外します。

npm v2の場合は electron-packager や electron-prebuilt が依存しているモジュールはそれぞれのフォルダ配下にあるため、パッケージ対象から除外されます。

対応方法

(その場しのぎ) npmのバージョンをv2に落とす

力技で ignore に依存パッケージを列挙しても良かったのですが、面倒くさかったので npm のバージョンをv2に落とします。

$ npm install -g npm@v2.15.3
$ npm -v
2.15.3

で、node_modulesフォルダを一旦削除し、npm install をやりなおします。

npm v2

フォルダ数が目に見えて少なくなってますね。

根本的な対応ではないですが、とりあえずの回避策として共有してみました。


【2016/04/25 追記】

【適切な対応方法】--global-style オプションを指定する

npm v3でも、npm install の際に --global-style オプションを指定することで、以前のようにパッケージごとの依存関係を反映したフォルダツリーとなります。

$ npm -v
3.8.8

$ npm install --global-style

001.png

見事に期待するフォルダ構成になっていますね。

17
19
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?