[Nodejs] npmの使用

ここに画像の説明を挿入

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の概念

NPM:ノードパッケージマネージャー

Node.jsは現在まで発展し、非常に大きなエコシステムを形成しています。パッケージ エコシステムが繁栄したら、これらのパッケージを管理するツールが必要になります。NPMが誕生しました。

たとえば、開発に Java 言語を使用する場合、JDK によって提供される組み込みライブラリとサードパーティ ライブラリを使用する必要があります。同様に、開発に JS を使用する場合、NPM パッケージ マネージャーを使用すると、成熟した優れたサードパーティ フレームワークを簡単に使用し、独自のプロジェクトに統合できるため、日々の開発の構築プロセスが大幅にスピードアップされます。

時間が経つにつれて、NPM は 2 つの概念層を備えて登場しました。

  • 意味の 1 つの層は、Node のオープン モジュールの登録および管理システムであり、エコシステムおよびコミュニティとも言えます。
  • もう 1 つの意味は、Node のデフォルトのモジュール マネージャーです。これは、Node モジュールをインストールおよび管理するためのコマンド ラインの下のソフトウェアです。

1.4 npm インストール (別途インストールは必要ありません)

NPM を個別にインストールする必要はありません。デフォルトでは、Node をインストールするときに NPM も一緒にインストールされます

NVM、ノード、および NPM がインストールされた後のディレクトリの分布は次のようになります。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

npm -vnpm のバージョンを表示するには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パッケージのミラーソースを切り替えて管理する機能です。

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 listnpm設定情報の表示

(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 を手動で再起動します。

おすすめ

転載: blog.csdn.net/weixin_43094619/article/details/131898502