この記事では、Node.js の 2 つの強力なパッケージ マネージャー、npm と Yarn について説明します。お役に立てれば幸いです。
Node.js クイック入門コース: 学習するために入力してください
Node
学習するための最初のステップは、ノードのパッケージ マネージャーであるnpm
理解することです。npm npm
パッケージ リソースのダウンロードによく使用されるため、誰もがよく知っていると思います。
ただし、 npm
のリソースライブラリ(https://www.npmjs.com/)が海外にあるため、それを利用したリソースのダウンロード速度が比較的遅いため、 yarn
や国産などのサードパーティのnode包管理器
npm
と同期しています。倉庫を更新しました。タオバオ ミラー (cnpm)
次はこれらの内容を詳しく学習していきます。始めましょう!
Nodeシリーズコラムの更新を開始しました。ブロガーをフォローしてコラムを購読し、迷わずにNodeを学びましょう。
npmとは何ですか
npm
使用する前に、まずnpm
とは何かを理解する必要があります。Node シリーズ コラム [Node.js | フロントエンドからフル スタックへの唯一の方法] の最初の記事では、 npm
がNode
のオープン ソース ウェアハウスであると述べられています。世界最大のオープンソース ウェアハウスです。
このウェアハウスのアドレスは: https://www.npmjs.com/
2020 年 3 月 17 日の時点で、 npm
約1,200 万人の開発者に130 万個のパッケージを提供し、開発者は月間750 億回ダウンロードしました。
npm
ウェアハウス内のリソースをダウンロードして使用するには、 npm的指令
( npm i axios
download axios
など、 npm
で始まる) を使用するか、yarn などの他のサードパーティ命令 (サードパーティのNode包管理器
) を使用できます。 。
公式声明:
npm
NodeJS
のパッケージ管理および配布ツールですパッケージ管理は、さまざまな
NodeJS
ソフトウェア パッケージを保存および管理するNodeJS
ウェアハウスであるという事実に反映されています。配布ツールは、
npm
ウェアハウスにパッケージをダウンロードするためのnpm的指令
使用して具体化されます。
NodeJS
環境を構成すると、 npm指令模块
NodeJS
とともにインストールされます。ターミナルからnpm -v
実行して、インストールされているバージョンを確認できます。
ただし、デフォルトでインストールされているnpm
バージョンが古すぎる場合は、 npm を自分で手動でインストールして更新することもできます。
npm i npm@latest -g
@latest
最新バージョンのインストールを表し、-g
グローバル インストールを表します。これらのnpm
手順については後で説明します。
npm
を使用してnpm
インストールしています。自分でインストールできますか?
これは実際には簡単に理解できます。npm npm的指令模块
もパッケージとしてnpm
npm
ハウスに保存されており、このパッケージの名前はnpm
です。
したがって、一般に npm と呼ばれるものは、単に npm のコマンド モジュール (npm という名前のパッケージ) を指します。
しかし実際には、
npm
という単語はnpm指令模块
を指し、また、NodeJS
オープン ソース ウェアハウス自体であるnpm
も指します。そのため、npm
npm
でダウンロードします (この npm は NodeJS のオープン ソース ウェアハウスを表します) (この npm はオープン ソース ウェアハウスを表します) npm という名前のソース ウェアハウス このパッケージ、このパッケージは npm のコマンド モジュールです)
npmの共通コマンド
npm
命令は多数ありますが、ここでは一般的に使用される命令のみをリストします。詳細については、npm の公式ドキュメントを参照してください。
npm init
: package.json
を生成します
npm install
: package.json
に記録されているすべてのリソースをダウンロードします
npm install 包名
: 指定したパッケージを現在のディレクトリにダウンロードします
npm uninstall 包名
: 現在のディレクトリにある指定されたパッケージをアンインストールします
npm update 包名
: 現在のディレクトリ内の指定されたパッケージを更新します。パッケージ名が追加されていない場合は、現在のディレクトリ内のすべてのパッケージが更新されます。
npm outdated 包名
:現在のディレクトリ内の指定されたパッケージが古いかどうかを確認します。パッケージ名が追加されていない場合は、現在のディレクトリ内のすべてのパッケージが確認されます。
npm info 包名
: 現在のディレクトリにあるパッケージの詳細情報を取得します
npm list
:現在のディレクトリにインストールされているすべてのパッケージとその依存関係を表示し、バージョン番号を表示します ( list
ls
と省略できます)
npm list 包名
: 現在のディレクトリにインストールされている指定されたパッケージのバージョン番号を表示します( list
ls
と省略できます)
追加のポイント:
install
、次のようにi
と省略できます。 npm install axios
npm i axios
と省略できます。
uninstall
un
と省略できます。
パッケージ名の後に@
記号を追加して、パッケージのバージョンを指定します。たとえば、 npm i md5@1
md5 のバージョン 1 をダウンロードし、 npm i md5@latest
md5 の最新バージョンをダウンロードすることを意味します。
npm
コマンドサフィックス
-g
:グローバル環境を指定します
npm
コマンドはデフォルトで現在のディレクトリで動作します。-g
を追加すると、グローバル環境で動作するように指定されますnpm i npm@latest -g
のように、npm をどのディレクトリでも使用できるようにします。 。
--save
-s
と省略できます。運用環境での依存関係を指定します ( dependencies
に記録されます)。
npm5
バージョン以降、デフォルトは--save
です。たとえば、axios は実稼働環境と開発環境の両方にインストールする必要があります:npm i axios -s
--save-dev
-D
と省略できます。開発環境の依存関係を指定します ( devDependencies
に記録されます)。
本番環境では必要のない babel をインストールするには (開発環境でのみ使用されます):
npm i babel -D
--save-prod
-P
と省略できます。 --save
と同じです
--save-optional
-O
と省略できます。オプションの依存関係を指定します ( optionalDependencies
に記録されます)。
--no-save
: package.json
には記録されません
-g,--save,--save-dev
私の記事「npm install -g/–save/–save-dev の違い」を参照してください。
npm コマンドのサフィックスは
npm i -g npm@latest
のようにパッケージ名の前に置くこともできます。
依存関係パッケージの管理
npm
では、よく知られている依存関係は、 dependencies
とdevDependencies
です。
さらに、実際には次のものが含まれます。
peerDependencies
、
optionalDependencies
bundledDependencies / bundleDependencies
これらを含むいくつかの依存関係がpackage.json
に記録されます。
上で、 npm コマンドのサフィックスについて説明したときに、これらの依存関係について説明しました。これらの依存関係が何を表すかについて詳しく説明します。
dependencies
とdevDependencies
私の他の記事をチェックしてください: npm install -g/–save/–save-dev の違い
peerDependencies
偉人による記事をチェックしてください: 1 つの記事でピア依存関係を理解する
optionalDependencies
オプションの依存関係。インストールが失敗した場合でも実行できる依存パッケージがいくつかある場合、または npm を実行し続けたい場合は、
optionalDependencies
使用できます。また、optionalDependencies
dependencies
内の同じ名前の依存関係を上書きするため、使用しないでください。両方の場所に書きます。
bundledDependencies
/ bundleDependencies
依存関係のパッケージ化
bundledDependencies
は、依存パッケージ名を含む配列オブジェクトです。公開する場合、このオブジェクト内のパッケージは、最初にdevDependencies
またはdependencies
で宣言する必要があります。そうしないと、パッケージ化によってエラーが報告されます。エラー。
package.json で注意が必要なパッケージ バージョンの問題
npm
を通じてダウンロードされたすべてのパッケージのバージョン情報はpackage.json
に記録されます。
npm i
package.json
に記録されたパッケージ情報に基づいてダウンロードされます。そのダウンロード ルールは次のとおりです。
パッケージのバージョンが^
(デフォルト) で始まる場合、大きいバージョンはロックされます
// パッケージ.json "依存関係": { "md5": "^2.1.0" // } ^ で始まり、
npm i
md5
2.xx
の最新バージョン (2 つのメジャー バージョンの最新バージョン) がインストールされます。これは必ずしも 2.1.0 である必要はなく、2.3.0 である場合もあります。
パッケージのバージョンが~
で始まる場合、 2 番目のメジャー バージョンにロックされます
// パッケージ.json "依存関係": { "md5": "~2.1.0" }、
npm i
を介して、md5
2.1.x
の最新バージョン (バージョン 2.1 の下の最新バージョン) をインストールします。これは必ずしも 2.1.0 である必要はありませんが、2.1.1 である場合もあります。
パッケージのバージョンは*
であり、最新バージョンにロックされます
// パッケージ.json "依存関係": { "md5": "*" }、
npm i
経由で最新バージョンのmd5
をインストールします
パッケージ version の前にプレフィックスがない場合は、指定されたバージョンにロックされます。
// パッケージ.json "依存関係": { "md5": "2.1.0" }、
npm i
経由でmd5
のバージョン 2.1.0 をインストールします
npm速度が遅い問題を解決する
npm
ウェアハウスは海外にあるため、中国でnpm
コマンドを使用してこの海外ウェアハウスのコンテンツをダウンロードすると時間がかかります。
現時点では、次のコマンドを実行して、 npm
ウェアハウスのソースを国内の淘宝網イメージ (cnpm)のソースに切り替えることができます。
npm 設定レジストリ https://registry.npmmirror.com
npm config get registry
使用して現在のソースを表示します。
将来的にnpm
使用する場合、国内のタオバオミラー倉庫から自動的にダウンロードされ、速度は非常に高速になります。
タオバオ ミラーの以前のソース アドレスは http://registry.npm.taabao.org でしたが、現在は http://registry.npmmirror.com に変更されています。
ただし、 npm
構成を変更してソースを切り替えるのは必然的に少し面倒になりますnrm
グローバルにインストールすると、 npm
ソースをすばやく切り替えることができます。
nrm を使用して npm ソースをすばやく切り替える
nrm をグローバルにインストールします。
npm install -g nrm
nrm ls
実行して、切り替え可能な npm ソースを表示します。
npm use
使用してソースを切り替える(タオバオソースに切り替えるなど): nrm use taobao
nrm test 源名
を使用して、対応するソースの応答時間をテストします。
Taobao ソースの応答速度がnpm
のデフォルト ソースよりもはるかに速いことがわかります。
中国語の npm ミラー: cnpm
cnpm
完全なnpmjs.org ミラーであり、公式バージョンの代わりに使用できます。
cnpm
と正式版との同期頻度は10分に1回、cnpm公式サイト
cnpm
をダウンロード:
npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm はタオバオ ミラーです。上記のタオバオ ミラーソースを使用するときは、 npm
のソースをタオバオ ミラーのソース ( cnpm
) (このソースは実際には倉庫のアドレスを参照します) に変更して、それを使用します。 npm
コマンド。
ここでは、 cnpm
の完全なイメージを直接ダウンロードします。そうすれば、 npm
コマンドの代わりにcnpm
コマンドを使用できます。
cnpm installcnpm i axios -g // ....
cnpm
の手順はnpm
の手順とまったく同じです。使用する場合はnpm の代わりに cnpm を使用してください。
Yarn は Facebook によってリリースされた依存関係管理ツールで、 npm
よりも高速かつ効率的です。
インストール:
npm install -g 糸
糸を更新します:
糸セットの最新バージョン ソースからの糸セットのバージョン
アドバンテージ
超高速yarn
ダウンロードされた各パッケージをキャッシュするため、再度使用するときに再度ダウンロードする必要はありません。 また、並列ダウンロードを利用してリソース使用率を最大化するため、インストールが高速化されます。
非常に安全
コードを実行する前に、 yarn
アルゴリズムを通じて各インストール パッケージの整合性を検証します。
糸の共通説明書
yarn init
: プロジェクトを初期化し、 package.json
ファイルを生成します。生成手順はnpm init
yarn help
:コマンド一覧表示
yarn install
: package.json
に記録されているすべてのリソースをダウンロードします。yarn と省略できますyarn
yarn add 包名
: 指定されたパッケージを現在のディレクトリにダウンロードします
yarn remove 包名
: 現在のディレクトリにある指定されたパッケージをアンインストールします
yarn upgrade 包名
: 現在のディレクトリ内の指定されたパッケージを更新します。パッケージ名の後に@指定版本号
を追加して、更新する必要があるバージョンを指定できます。
yarn
コマンド接尾辞
--dev
:開発環境での依存関係を指定します ( devDependencies
)。- -D
と省略されます。
--peer
:コアの依存関係を指定します ( peerDependencies
)
--optional
:オプションの依存関係を指定します ( optionalDependencies
)
この記事では、 npm
とyarn
、および npm から派生したnrm
、 cnpm
などを紹介します。
ブロガーは、 npm + nrm の組み合わせを使用してソースを切り替えています。これにより、高速な速度が保証されるだけでなく、 cnpm
やyarn
npm
とyarn
は両方とも多くの内容が含まれています。この記事では、最もよく使用される内容についてのみ説明します。詳しく知りたい場合は、対応する公式 Web サイトにアクセスしてください。