npmの基本的な操作コマンド。
Node.jsのパッケージマネージャーのnpmの基本的な操作コマンドのチートシート。忘れるのでメモ。
[ パッケージ ]
何らかの機能を持ったプログラム(コマンドラインツールやアプリケーションなど)を構成するファイル群(実行ファイル、設定ファイル、ライブラリーなど)を集約して、インストールやアンインストールなどができるように1つにまとめたもの。
[ パッケージマネージャー ]
パッケージのインストール、バージョンアップ、アンインストール、ひとつのパッケージの動作に他のパッケージやライブラリーが必要な場合の自動インストールやその依存関係やバージョンの管理など、パッケージの扱いに関する処理を実行して一元管理するシステム。
npmの概要
npmのパッケージは、npm Inc.が管理する「npmjs.com」のレジストリからダウンロードしてインストールされる。
※ 誰でもパッケージを登録・公開できるので、信頼できるパッケージなのか必ず確認する。
Node.jsのパッケージ管理システムであり、V8 JavaScriptエンジンで動作する。npm自身もJavaScriptで記述されている。
npmは、Node.jsのツールやパッケージ(モジュール)をインストールしたり管理したりするだけでなく、パッケージを扱うためにインターフェイスを備えている。リポジトリ機能も備えており、必要とするパッケージ(モジュール)の検索、ダウンロード、インストール、アップデートを行えたり、開発したパッケージ(モジュール)を他者に公開できたりする。
開発元であるnpm Inc.は2014年に設立し、2020年にGitHubに買収された。 (Wikipedia)
パッケージのインストール
- npmでパッケージを管理するには、npmの設定が記述された「package.json」ファイルが必要。(npmの初期化コマンド「npm init」で自動生成される。)
- npmでパッケージをインストールすると、依存関係によりインストールされたパッケージも含めた、すべてのパッケージの情報が記述された「package-lock.json」ファイルがカレントディレクトリに自動生成される。
- インストールされたすべてのパッケージのファイルは「カレントディレクトリ/node_modules/」ディレクトリ内に格納される。(「node_modules」フォルダ以下は自動生成される。)
- npmでパッケージをグローバルインストールした場合、Linuxでは「/usr/local/bin/」にインストールしたパッケージのコマンド実行ファイルが格納されるので自動的にパスが通る。
- npmでパッケージをローカルインストールした場合、「カレントディレクトリ/node_modules/.bin/」にインストールしたパッケージのコマンド実行ファイルが格納される。(パスは通っていないので「npx」コマンドで実行する。)
- 開発環境の違いによる影響を抑えるため、通常はグローバルではなくローカルにプロジェクトごとにインストールする。
npxコマンド
- 「npx」は、npmのバージョン5.2.0より同梱されているコマンド。
- 「npx」コマンドは、ローカルインストールしたパッケージのコマンドを実行するときなどに使用する。
- 「npx」コマンドは、指定したコマンドの実行ファイルを「カレントディレクトリ/node_modules/.bin」内から探して実行する。
- 「npx」コマンドは、インストールされていないコマンドの場合はレジストリからパッケージを探して一時的にインストールして実行、実行後にそのパッケージの除去までを行う。
Yarn
- npmを代替するパッケージマネージャー。
- セキュリティーやパフォーマンスなどのnpmの諸問題解決のため、2016年にFaceBook(現Meta)がNode.js環境用に開発したパッケージ管理システム。
- npmと互換性があるのでnpm用の「package.json」が使える。
- npmよりもパッケージのインストール速度が速い。
- npmもバージョンごとに改善されているので現在は差はあまり無いらしい。(未検証。)
npmの基本操作コマンド
(1) npmのバージョンを表示。
npm -v
npm -version
npm --version
(2) npmのヘルプ。
npm -h
npm -help
#コマンドのヘルプ
npm -h 「コマンド名」
(3) npmの設定の表示。
npm config list
#詳細を表示するオプション
npm config ls -l
(4) npmの初期化。
対話型でパッケージ名などの設定内容を質問される。(デフォルト設定を使用する場合は、そのまま「Enter」キーで進める。)
実行すると、設定した内容の「package.json」ファイルがカレントディレクトリに自動生成される。
npm init
#対話型の入力を省略するオプション
npm init -y
npm init -yes
(5) パッケージのローカルインストール。(カレントディレクトリにインストールされる。)
「package.json」の記述内容に従ってパッケージをインストールする場合。(「package-lock.json」ファイルが自動生成される。)
npm i
npm install
「package-lock.json」の記述内容にしたがってパッケージをインストールする場合。(「node_modules」フォルダが既存の場合は、中身を削除してからインストールされる。)
※ 特定の開発環境に揃える場合などに使用する。
npm ci
個別にパッケージを指定してインストールする場合。
npm i 「パッケージ名」
npm install 「パッケージ名」
開発環境下だけで使用するパッケージをインストールする場合。(「package.json」内の「devDependencies」欄にパッケージ名が記録される。)
※ 「devDependencies」欄に記述されているパッケージは開発専用なので、webpackなど、本番環境には含めないパッケージやモジュールをインストールする場合に指定する。
npm install --D 「パッケージ名」
npm install --save-dev 「パッケージ名」
(6) パッケージのグローバルインストール。
npm install -g 「パッケージ名」
npm install --global 「パッケージ名」
(7) パッケージのアンインストール。
通常のアンインストール。
npm un 「パッケージ名」
npm uninstall 「パッケージ名」
npm unlink 「パッケージ名」
npm r 「パッケージ名」
npm rm 「パッケージ名」
npm remove 「パッケージ名」
アンインストール時に「package.json」ファイルの「devDependencies」欄の記述からも削除する場合。
npm uninstall -D 「パッケージ名」
npm uninstall --save-dev 「パッケージ名」
グローバルインストールしたパッケージをアンインストールする場合。
npm uninstall -g 「パッケージ名」
(8) カレントディレクトリでローカルインストールされているパッケージの一覧を出力。
npm ls
npm list
(9) グローバルインストールされているパッケージの一覧を出力。
npm ls -g
(10) インストールしたパッケージの実行。
パッケージのデフォルトのタスクを実行。
npx 「パッケージ名」
#npxコマンドを使わない場合は実行ファイルを直接指定する
./node_modules/.bin/「パッケージ名」
パッケージの特定のタスクを指定して実行。
npx 「パッケージ名」 「タスク名」
(11) 実行中の常駐タスクの停止。
Gulpやwebpackのwatchなど常駐タスクの停止。
- 常駐タスク実行中に「control」キー + 「C」キー。
https://memo.ag2works.tokyo/post-5309/
npmの基本的な操作コマンド。 | memo メモ [AG2WORKS]
<a href="https://memo.ag2works.tokyo/post-5309/" target="_blank" rel="noopener">npmの基本的な操作コマンド。 | memo メモ [AG2WORKS]</a>
この記事へのコメント
コメントの書き込みはまだありません。