1. パッケージとnpm
1.1 パッケージとは
Node はライトコア プラットフォームであるため、一連の組み込みモジュールを提供しますが、開発者のニーズを満たすには十分ではないため、パッケージ (パッケージ) の概念が登場しました。コア モジュールと同様に、事前に設計された機能をいくつか組み合わせる 関数または API は、開発者が使用できるフォルダーにカプセル化されます。
Node 自体には機能的な API があまりないため、サードパーティの担当者によって開発された多数のパッケージが市場に出ています。
1.2 パッケージロードの仕組み
Node.js は CommonJs モジュール化メカニズムを使用します。npm 経由でダウンロードされたサードパーティ パッケージは、プロジェクトにサードパーティ パッケージを導入します: let xx = require('サードパーティ パッケージ名')、require メソッドはどのようにロードしますかサードパーティのパッケージ? その原理的なメカニズムについて今日は説明しましょう。
(1) require('サードパーティのパッケージ名') は、まず、パッケージをロードするモジュールの同じレベルのディレクトリ node_modules でサードパーティのパッケージを検索します。
(2) サードパーティ パッケージ内の package.json ファイルを検索し、その中の main 属性に対応するエントリ モジュール (読み込まれたサードパーティ モジュール) を見つけます。
(3) ロードするサードパーティパッケージ内に package.json ファイルが見つからない場合、または package.json ファイルに main 属性がない場合、デフォルトでサードパーティパッケージ内のindex.js ファイルがロードされます。 。
(4) サードパーティモジュールをロードするファイルと同じレベルのディレクトリにnode_modulesフォルダが見つからない場合、または上記の条件のいずれも見つからない場合は、上位レベルの親ディレクトリでnode_modulesフォルダが検索されます。検索ルールは上記と同じです。
(5) モジュールのディスク ルート パスが見つからない場合は、「モジュール xxx が見つかりません」というエラーが報告されます。
例えば:
requiere(`fs`);
ロードされるのはシステム パッケージである必要があります。したがって、既存のパッケージと同じ名前のパッケージを作成しないようにします。
1.3 npmの概念
Node.jsは現在まで発展し、非常に大きなエコシステムを形成しています。パッケージ エコシステムが繁栄したら、これらのパッケージを管理するツールが必要になります。NPMが誕生しました。
たとえば、開発に Java 言語を使用する場合、JDK によって提供される組み込みライブラリとサードパーティ ライブラリを使用する必要があります。同様に、開発に JS を使用する場合、NPM パッケージ マネージャーを使用すると、成熟した優れたサードパーティ フレームワークを簡単に使用し、独自のプロジェクトに統合できるため、日々の開発の構築プロセスが大幅にスピードアップされます。
時間が経つにつれて、NPM は 2 つの概念層を備えて登場しました。
- 意味の 1 つの層は、Node のオープン モジュールの登録および管理システムであり、エコシステムおよびコミュニティとも言えます。
- もう 1 つの意味は、Node のデフォルトのモジュール マネージャーです。これは、Node モジュールをインストールおよび管理するためのコマンド ラインの下のソフトウェアです。
1.4 npm インストール (別途インストールは必要ありません)
NPM を個別にインストールする必要はありません。デフォルトでは、Node をインストールするときに NPM も一緒にインストールされます
NVM、ノード、および NPM がインストールされた後のディレクトリの分布は次のようになります。
npm -v
npm のバージョンを表示するにはEnter を押します
上記のコマンドが機能しない場合は、前のノードが完全に正常にインストールされていない可能性があります。さらに、Node に付属の NPM は最新バージョンではない可能性があります。次のコマンドを使用して最新バージョンに更新できます。
$ npm install npm -g
1.5 NPM のグローバル ディレクトリを構成する
NPM は、デフォルトで、ノード バージョンが現在使用されているディレクトリにインストールされます。NPM のグローバル カタログを再構成することをお勧めします。
npm config ls と入力して、npm 構成を表示し、ソースを変更し、リポジトリ構成を変更します。
2. NPMの共通コマンド
npm の現在のバージョンを表示します。
npm -v
npm を更新します:
npm install npm@latest -g
プロジェクトの初期化: (実行完了後、package.json ファイルが生成されます)
npm init
# 快速跳过问答式界面,选择默认配置
npm init --yes
指定されたパッケージのみを現在のプロジェクトにインストールします。
npm install [package]
指定したパッケージをグローバルにインストールします。
npm install -g [package]
インストールされたパッケージは開発環境でのみ使用され、運用環境では使用されません: (package.json ファイルの devDependency プロパティに表示されます)
npm install [package] --save-dev
# 或者
npm install [package] -D
インストールされたパッケージは実稼働環境に公開する必要があります: (package.json ファイルの依存関係プロパティに表示されます)
npm install [package] --save
# 或者
npm install [package] -S
現在のディレクトリにインストールされているノード パッケージを表示します。
npm list
グローバルにインストールされたノード パッケージを表示します。
npm list -g
npm help コマンドを表示します。
npm --help
特定のコマンドのヘルプを表示します。
npm [指定命令] --help
指定されたパッケージを更新します。
npm update [package]
指定されたパッケージをアンインストールします。
npm uninstall [package]
構成情報を表示します。
npm config list
ローカルにインストールされている指定したパッケージの情報を表示します。情報がない場合は空が表示されます。
npm ls [package]
グローバルにインストールされている指定したパッケージの情報を表示します。情報がない場合は空が表示されます。
npm ls [package] -g
リモート npm 上の指定されたパッケージのすべてのバージョン情報を表示します。
npm info [package] versions
現在のパッケージのインストール パスを表示します。
npm root
グローバル パッケージのインストール パスを表示します。
npm root -g
3.npmミラーソースを構成する
npmのデフォルトのダウンロードアドレスは海外(npmjs.com)となっているため、ブロックされてダウンロードできない、またはダウンロードが遅くなる場合があります。したがって、他のミラー ソースから npm パッケージをダウンロードするように切り替えることができます。
画像ソースを切り替える方法はいくつかあります。
- 方法 1: 映像ソースを一時的に切り替えます。
- 方法 2: 映像ソースを切り替える
- 方法 3: NRM を介して画像ソースを切り替えます (最も推奨される方法)。
- 方法 4: cnpm。
3.1 方法 1: 映像ソースを一時的に切り替える
指定したパッケージをインストールするときに、 --registry パラメーターを追加するだけです。形式は次のとおりです。
# 格式
npm install [package] --registry [https://xxx]
# 举例:在下载安装 express 这个包的时候,临时指定镜像源为 https://registry.npm.taobao.org
npm install express --registry https://registry.npmmirror.com/
3.2 方法 2: 映像ソースを切り替える
npm config set registry https://registry.npmmirror.com/
上記のコマンドを実行すると、今後すべての npm パッケージをダウンロードするときに、代わりに Taobao のミラー ソースが使用されます。
3.3 方法 3: NRM 経由で画像ソースを切り替える (推奨)
NRM: ノード レジストリ マネージャー。npmパッケージのミラーソースを切り替えて管理する機能です。
- プロジェクトアドレス: https://www.npmjs.com/package/nrm
- GitHub アドレス: https://github.com/Pana/nrm
NRM をインストールします。
npm install -g nrm
nrm ls コマンドを実行して、オプションのソースを表示します。
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
切り替え
タオバオソースに切り替えたい場合は、コマンドを実行しますnrm use taobao
。
追加
カスタム ソースを追加できます (特に企業内にプライベート ソースを追加する場合)。コマンドを実行しますnrm add <registry> <url>
。regstry はソース名、url はソースのパスです。
nrm add registry http://registry.npm.frp.trmap.cn/
削除
コマンドを実行して、nrm del <registry>
該当するソースを削除します。
テスト速度対応するソースの応答時間をテストする
こともできます。nrm test
nrm test npm
3.4 方法 4: cnpm をインストールする
プロジェクトのアドレス: npmmirror 中国のミラー ステーション
npm を置き換えるために cnpm をインストールします (ソース サーバーが海外にあるため、npm はパッケージのダウンロードに時間がかかります。cnpm は国内のミラーを使用します)。
$ npm install -g cnpm --registry=https://registry.npmmirror.com
将来的には、cnpm コマンドを使用してパッケージをインストールできるようになります。例は次のとおりです。
# 安装 vue 这个包
cnpm install vue
ここでの install という単語は i と省略できます。
4.npmスクリプトとは何ですか
npm 允许在package.json文件里面,使用scripts字段定义脚本命令。
package.json 里面的scripts 字段是一个对象。
它的每一个属性,对应一段脚本。
定义在package.json里面的脚本,就称为 npm 脚本。
現在のプロジェクトのすべての npm スクリプト コマンドを表示するには、パラメーターを指定せずに npm run コマンドを使用します。
4.1 使用方法
npm run スクリプト名
並列実行 (つまり、同時に並列実行) の場合は、& 記号を使用できます。npm run script1.js と npm run script2.js が
連続して実行される場合 (つまり、前のタスクが成功した場合にのみ次のタスクが実行される場合)、&& 記号を使用できます。npm run script1.js && npm run script2.js
4.2 短い形式
npm start 略して npm run start
npm stop 略して npm run stop
npm テスト 略して npm run test
npm restart 略して npm run stop && npm run restart && npm run start
5.pnpm
5.1 pnpmとは
pnpm是 Node.js 的替代包管理器。它是 npm 的直接替代品,但速度更快、效率更高。为什么效率更高?当您安装软件包时,我们会将其保存在您机器上的全局存储中,然后我们会从中创建一个硬链接,而不是进行复制。对于模块的每个版本,磁盘上只保留一个副本。例如,当使用 npm 或 yarn 时,如果您有 100 个使用 lodash 的包,则磁盘上将有 100 个 lodash 副本。pnpm 可让您节省数 GB 的磁盘空间!
pnpm の利点 pnpm には、npm に比べて Yarn の追加機能がすべて含まれています。
- セキュリティ:yarn と同様に、pnpm には、インストールされているすべてのパッケージのチェックサムを含む特別なファイルがあり、コードを実行する前にインストールされている各パッケージの整合性を検証するために使用されます。
- オフライン モード: pnpm は、ダウンロードされたすべてのパッケージ tarball をローカル レジストリ ミラーに保存します。パッケージがローカルで利用可能な場合は、リクエストを行うことはありません。HTTP リクエストを完全に無効にするには、--offline パラメータを使用します。
- 速度: pnpm は npm よりも速いだけでなく、yarn よりも高速です。コールド キャッシュとウォーム キャッシュの両方で、yarn よりも高速です。yarn はキャッシュからファイルをコピーしますが、pnpm はグローバル ストレージからファイルをリンクするだけです。
5.2 pnpmの使用
公式サイト: https: //pnpm.js.org/installation/
グローバルインストール
npm install pnpm -g
ソースを設定する
//查看源
pnpm config get registry
//切换淘宝源
pnpm config set registry https://registry.npmmirror.com/
使用
//可以和npm一样使用方式
pnpm init //直接初始化
pnpm install 包 //
pnpm i 包
pnpm add 包 // -S 默认写入dependencies
pnpm add -D // -D devDependencies
pnpm add -g // 全局安装
削除
pnpm remove(uninstall) 包 //移除包
pnpm remove 包 --global //移除全局包
更新する
pnpm up //更新所有依赖项
pnpm upgrade 包 //更新包
pnpm upgrade 包 --global //更新全局包
pnpm up --latest //最新更新所有依赖项,忽略package.json中指定的范围
6. npmコマンドの概要
(1)npm init -y
インストール情報を記録する初期化ファイルを追加します。その後に -S または -D を追加すると、ファイルは自動的に作成されます。
(2)npm install 包名 –g (uninstall,update)
(3)npm install 包名 --save(-S) --dev(-D) (uninstall,update)
サフィックスを記述しない場合は、デフォルトで実稼働環境にインストールされます。最初に開発環境にインストールした場合は、独自の環境でサフィックスを記述せずにインストールをカバーします。パッケージは、 1 つの環境にのみ存在するため、置き換える前にアンインストールする必要があります。
(4) npm list -g
(-g を指定しない場合、現在のディレクトリ内のインストール パッケージを一覧表示します)
(5) npm info 包名
(詳細) npm info パッケージ名 version (最新バージョンを取得)
(6) npm install [email protected]
(指定されたバージョンをインストール)
(7) npm outdated
(パッケージが古いかどうかを確認します)、バージョンが新しい場合、出力はありません
(8)pwd
カレントディレクトリの絶対パスを出力
(9) npm view 包名
version 現在のバージョンを表示します。 npm view パッケージ名 version パッケージのすべてのバージョンを表示します。
(10)npm update 包名
指定したパッケージを更新 npm update してすべてのパッケージを更新します(pnpm up)
(11) npm config list
npm設定情報の表示
(12)npm 指定命令 --help
指定したコマンドのヘルプを確認してください。
(13) npm root
: 現在のパッケージのインストール パスを表示します。npm root -g: グローバル パッケージのインストール パスを表示します。
(14) npm ls 包名
: ローカルにインストールされている指定したパッケージとバージョン情報を表示します。空は表示されません。npm ls パッケージ名 -g: グローバルにインストールされている指定したパッケージとバージョン情報を表示します
(15)npm cache clean --force
キャッシュのクリア
(16)npm -v
閲覧npm
バージョン
"dependencies": { "md5": "^2.1.0" } ^ 表示 如果 直接npm install 将会 安md5@2.*.* 最新版本
"dependencies": { "md5": "~2.1.0" } ~ 表示 如果 直接npm install 将会 安装md5 2.1.* 最新版本
"dependencies": { "md5": "*" } * 表示 如果 直接npm install 将会 安装 md5 最新版本
7.nodemon を使用してサービスを自動的に再起動します
開発プロセスでは、コードを変更するたびにサーバーを再起動する必要があります。この種の作業効率は明らかに低いです。ここでは、コードの変更を監視するのに役立つツール、nodemon を皆さんにお勧めします。プロジェクトをリアルタイムで実行し、サービスを自動的に再起動するため、構成は簡単です。
(1) インストール:npm install -g nodemon
nodemon を使用できない場合は、環境変数で構成します。
(2) nodemon を使用してプロジェクトを実行し、以前のノード app.js を置き換えます。
nodemon app.js
プロジェクトの実行後、nodemon はコードの変更を自動的に監視し、サービスを再起動するため、開発効率が大幅に向上します。
(3)nodemonの共通構成
- コマンドラインでアプリケーションのポート番号を指定します。
nodemon ./server.js localhost 8080
- ヘルプを参照すると、ヘルプには多くのオプションがあり、一目瞭然です。
nodemon -h 或者 nodemon --help
- デバッグモードを実行します。
nodemon --debug ./server.js 80
- プロジェクトを手動で再起動する:
Nodemon
コマンドが実行されているターミナル ウィンドウに 2 文字 rs を入力し、Enter キーを押して Nodemon を手動で再起動します。