#089
posted on 2023.03.25 (Sat)

npmの基本的な操作コマンド。

Node.jsのパッケージマネージャーのnpmの基本的な操作コマンドのチートシート。忘れるのでメモ。

[ パッケージ ]

何らかの機能を持ったプログラム(コマンドラインツールやアプリケーションなど)を構成するファイル群(実行ファイル、設定ファイル、ライブラリーなど)を集約して、インストールやアンインストールなどができるように1つにまとめたもの。

 

[ パッケージマネージャー ]

パッケージのインストール、バージョンアップ、アンインストール、ひとつのパッケージの動作に他のパッケージやライブラリーが必要な場合の自動インストールやその依存関係やバージョンの管理など、パッケージの扱いに関する処理を実行して一元管理するシステム。

 

 

npmの概要

npmのパッケージは、npm Inc.が管理する「npmjs.com」のレジストリからダウンロードしてインストールされる。

※ 誰でもパッケージを登録・公開できるので、信頼できるパッケージなのか必ず確認する。

npmとはパッケージ管理システムの一種。Node Package Managerの意。なおnpmとは「Node Package Manager」の頭文字を取ったものではなく、実際はバクロニムである。
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」キー。

 

 

この記事のURL

https://memo.ag2works.tokyo/post-5309/

Copyコピー
この記事のタイトル

npmの基本的な操作コマンド。 | memo メモ [AG2WORKS]

Copyコピー
この記事のリンクタグ

<a href="https://memo.ag2works.tokyo/post-5309/" target="_blank" rel="noopener">npmの基本的な操作コマンド。 | memo メモ [AG2WORKS]</a>

Copyコピー
※ フィールドをクリックでコピーするテキストの編集ができます。

この記事へのコメント

コメントの書き込みはまだありません。

  • コメント内のタグはエスケープ処理され、文字列として出力されます。
  • セキュリティーのため、投稿者のIPアドレスは取得されます。
  • 管理者が内容を不適切と判断したコメントは削除されます。
  • このフォームにはスパム対策として、Googleの提供するreCAPTCHAシステムが導入されています。
    (Google Privacy Policy and Terms of Service.)