2017-03-11 1 views
0

私はインストールの構築なっ方法のNPMモジュールについての説明を取得したいと思い、私は例をあげる:親プロジェクトの依存関係を使ってインストール時にnpmにモジュールをビルドする方法を教えてください。

私は material-ui npm module sources on GitHubの表情を取っている

、要因がありますが、何も建てられたファイルは、ありません私は自分のプロジェクトnode_modules/material-uiディレクトリを見ています。ディレクトリにはビルドされたファイル(es5、uglify)のみが含まれています。

私はその魔法の仕組みを理解しようとしていますか? package.jsonの中にビルドスクリプトがあることがわかりますが、npmにインストール時にそれを実行するよう指示するものは何もありません。何が欠けていますか?それはさらに時間がかかるだろうし、彼らはビルドツールをサポートしていないのNode.jsの古いバージョンを使用しているため、失敗する可能性がありますので

おかげ

答えて

2

は通常のモジュールは、クライアントのマシン上に構築されません。もちろんビルドツールもインストールする必要があり、プロセスをさらに長くすることになります。代わりに、公開する前に構築してください。 GitHubにあるものは、npmレジストリに実際に公開されているものとは異なります。ほとんどのモジュールはビルドされたソースをGitHubにチェックインしません。

おそらくmaterial-uiこのプロセスは手動で実行され、Unpkg - material-uiのようにビルドされたソースが公開されます。 reduxよう

他のいくつかのパッケージはあなたがUnpkg - Reduxで見ることができるように出版されたパッケージを反映npm publishRedux prepublish hook)を実行しているとき、それが発表されます直前に必要な情報源を構築prepublishフックを、使用しています。 GitHubの元のソースにかなり近いですが、.gitignoreファイルにあるビルドされたファイルを含め、関連するファイルのみが含まれています。 (testディレクトリ、rollup.config.jsなど)多くのファイルを公開する必要がなく、クライアント上のスペースしか占めないため、files in package.jsonを指定して、リストされたファイル(Redux files)のみを公開することができます。

あなただけreduxが理解し非常に簡単であるのに対し、それは、出版に来るときmaterial-uiでかなり混乱したパッケージを選んだために起こりました。

+1

マイケルは正しいです、私たちは(与えられた理由で)ビルドを公開しており、プロセスは複雑ではありません。 'npm build'は' build'ディレクトリに構築され、ベース 'package.json'の関連する部分を' build'の中の新しいものにコピーし、そこからパブリッシュします。これはすべての旋律の後ろに残し、あなたに素敵なきれいなパッケージを提供します。 – Matt

関連する問題