npm を Taobao ミラー ソースに置き換え、cnpm を使用します

1. 需要の根源

ノードインストールプラグインは海外サーバーからダウンロードするため、ネットワークの影響を大きく受け、速度が遅くなったり、異常が発生する場合があります。したがって、npm サーバーが中国にあれば良いのですが、タオバオ チーム (Alibaba のビジネス Alibaba Cloud) がこれを実行したことを喜んで共有します。公式 Web サイトから: 「これは完全な npmjs.org ミラーです。公式バージョン (読み取り専用) の代わりにこれを使用できます。現在、同期頻度は 10 分ごとで、公式サービスと可能な限り同期されるようにしています。

つまり、アリの国内サーバーを使用してノードをインストールできます。

2. 使用方法

1. Ali がカスタマイズした cnpm コマンド ライン ツールを使用してデフォルトの npm を置き換え、次のコードを入力してインストールします。

npm install -g cnpm --registry=https://registry.npm.taabao.org

2. cnpm のバージョンを確認し、インストールが成功すると、cnpm の基本情報を確認できます。 

cnpm -v 

今後プラグインをインストールするには、cnpm install を使用するだけで済みます。

npm install のインストール方法に慣れており、コマンドを cnpm に変更するために Ali の cnpm コマンド ツールをダウンロードしたくない場合はどうすればよいですか? ノードの倉庫アドレスをタオバオミラーの倉庫アドレスに直接変更すれば良いのではないか、と考えるのは簡単です。

3. シングルユース

npm install --registry=https://registry.npm.taabao.org

4. 永久使用

グローバル ダウンロード ミラー サイトとして設定すると、インストールするたびに --registry を追加する必要がなく、デフォルトで Taobao ミラーからダウンロードされます。設定方法は次のとおりです。

1. .npmrc ファイルを開きます (nodejs\node_modules\npm\npmrc、利用できない場合は、git コマンド ラインを使用してファイルをビルドできます (touch .npmrc)。cmd コマンドを使用してエラーを作成します)。 2. レジストリ =https://registry.npm.taabao.org を追加します

次のようにコマンドラインで直接設定することもできます。

npm config レジストリを設定 https://registry.npm.taabao.org

テストが成功したかどうか

// 構成後、次の方法で成功したかどうかを確認できます:
npm config get registry
// または
npm info Express

このように、cnpmに変更せずにタオバオミラーを使用できるようになります。素晴らしいですね! 実際のタオバオミラーが使用されていますが。
最後に、タオバオミラー公式ウェブサイトのアドレスを添付します: http://npm.taabao.org/

: npm ウェアハウスのアドレスを復元したい場合は、そのアドレスを npm ミラーとして構成するだけで済みます。

npm 設定レジストリ https://registry.npmjs.org/

5.npmをタオバオミラーとcnpmに変更することの違い

npm が Taobao Mirror に変更された後も、cnpm とは本質的に異なりますが、package-lock.json を調査すると、両者には依然として大きな違いがあることがわかります。特別な記録:

まず、比較のためにスクリーンショットを貼り付けます。
1. cnpm を使用して lodash をインストールします。

 

2. タオバオ倉庫に変更されたnpmを使用してlodashをインストールします

 

スクリーンショットから次のことがわかります。

違い:

  • cnpm がモジュールをインストールすると、node_modules フォルダー内に、アンダースコア _ で始まる名前とバージョン番号が付けられたフォルダーと、通常の名前のフォルダーが 2 つ生成され、フォルダー名は異なりますが、中のファイルは同じです。たとえば、cnpm install lodash を実行すると、node_modules フォルダーの下に 2 つのフォルダー ([email protected]@lodash および lodash) が生成されます。
  • 最初に cnpm install lodash を実行し、次に npm install lodash を実行します。npm によってインストールされた lodash は、cnpm によってインストールされた lodash パッケージ (アンダースコアで始まるパッケージを含む) を置き換えます。npm によって最初にフォルダーにインストールされる lodash パッケージは 1 つだけになります。繰り返しますが、npm uninstall lodash または cnpm uninstall lodash を実行すると、lodash パッケージが削除され、プラグイン パッケージは空のフォルダーになります。
  • 最初に cnpm install lodash を実行し、次に npm uninstall lodash を実行すると、この時点でエラーが報告されます。

 npmエラー! code EINVALIDPACKAGENAME
 npm ERR! 無効なパッケージ名「[email protected]@lodash」: 名前をアンダースコアで始めることはできません。 
 名前には URL に適した文字のみを含めることができます

ただし、cnpm uninstall lodash を使用すると、エラーは報告されず、cnpm によってインストールされた 2 つのパッケージのうち、アンダースコアのない (通常の名前) パッケージが削除されます。残りのパッケージはマウスクリックで通常どおり開くことができます。次に、ファイル内の require は、そのようなパッケージが存在しないことを示すエラーを報告します。

  • まず、cnpm install lodash を実行し、次に cnpm によってインストールされた 2 つのパッケージのうち 1 つである下線 (異常な名前) のパッケージを手動で削除します。残りのパッケージはマウスでクリックしても開くことができないことがわかります。次に、ファイル内の require は、そのようなパッケージが存在しないことを示すエラーを報告します。

 

結論は:

  • cnpm でインストールする 2 つのモジュールは参照関係があり、正常名モジュールは異常名モジュールのインデックスとなるため、両方が存在していなければ使用できません。ただし、npm のインストール後は、通常の名前を持つモジュールが 1 つしかないため、この状況は存在しません。
  • 実際に測定してみると、npmを利用してタオバオ倉庫に変更しても、cnpmに比べてインストール速度が大幅に遅い(モジュール数が多い場合)ことが分かりました。おそらく、cnpm によってインストールされたファイル構造に関係があるはずです。

 

 

おすすめ

転載: blog.csdn.net/m0_69057918/article/details/130886867