web-dev-qa-db-ja.com

Electronを開発者の依存関係として保存する必要があるのはなぜですか?

公式ウェブサイトによると、electronファイルを保存する正しい方法は次のとおりです。

_npm install electron --save-dev
_

Electronは実際にアプリを実行するために必要であり(文字通り:require())、これは ここでトップ投票の回答 に反します。では、これが1つでもあるのに、なぜこの例外を設けるのでしょうか。

13
Deformer

パッケージをrequireするという事実は、パッケージを依存関係と見なす必要があるか、または(npmの意味で)devDependencyと見なすべきかには関係ありません。例えば。多くのプロジェクトはwebpack API(つまりconst webpack = require('webpack'))を使用していますが、devDependencyとしてリストしています。

その理由は、リンク先の投稿でも説明されています。パッケージをpublishするとき、コンシューマープロジェクトが他のパッケージを使用する必要がある場合は、これらをdependenciesとしてリストする必要があります。

パッケージがビルド、テスト、またはdistファイルへのバンドルのみのためにいくつかのモジュールを使用する場合(つまり、コンシューマープロジェクトで使用されるもの)、それらのモジュールはdependenciesで言及されるべきではありません。開発のためにそれらをdevDependenciesにまだリストしています。

今、electronアプリの場合、アプリをコンシューマープロジェクトのノードモジュールとして使用する可能性はほとんどないため、上記の規則は実際には関係ありません。

さらに、ビルドされた出力の一部としてelectronパッケージがバンドルされている場合も当てはまります。ビルドしたアプリを使用するために、ユーザーがnpmからelectronを取得する必要はありません。したがって、devDependencyの定義とよく一致します。

そうは言っても、IIRCの一部のElectron Packagerは、ビルドされたアプリにdependenciesをバンドルしているため、このリストを入力する際に​​は依然として厳密さが必要です。

7
ghybs

実際にインストーラーにパッケージ化するときに、これらのバイナリは使用されません。 electronのほとんどのインストーラー/パッケージャーは、依存関係を使用する代わりに、electronバイナリーを使用してパッケージをビルドします。

0
OJ Kwon