npm
Node.js で使用するパッケージマネージャー
公式サイト:
導入
参考:
npm install の使い方と npm ci の使い方 | 株式会社 CONFRAGE
インストール
ドキュメント:
使い方
参考:
npm の基本的な使い方 | Web Design Leaves
コマンド
init
:package.json
を生成する。update
:package.json
に従ってパッケージをインストール/更新する。install
:パッケージを追加する。remove
:パッケージを削除する。list
:インストール済みパッケージの一覧を表示する。outdated
:更新が必要なパッケージの一覧を表示する。prune
:package.json
で管理されていないパッケージを削除する。search
:パッケージを検索する。show
:パッケージの詳細を表示する。audit
:既知の脆弱性を確認する。
参考:
オプション
ドキュメント:
パッケージをインストールする
package.json
の記述に従って、node_modules
ディレクトリにパッケージをインストールする。
$ npm install
ドキュメント:
npm-install | npm Docs [Official]
参考:
What is the purpose of using --save-exact – Stack Overflow
パッケージをグローバルにインストールする
グローバルにインストールしたパッケージが配置される場所を確認する。
$ npm root -g
npm
コマンドで vtop
をグローバルにインストールする。
$ npm install -g vtop
グローバルにインストールしたパッケージを一覧表示する。(直接名前を指定してインストールしたメインパッケージのみ)
$ npm list -g --depth=0
参考:
npm のグローバルインストールとローカルインストール – Qiita
npm install -g でグローバルインストールしたのに見つけてくれない – Qiita
グローバルにインストールした module が not found になる時の対処 – Qiita
npm や yarn のグローバルインストール先 | カンタロー CGI
Where does npm install packages? – Stack Overflow
パッケージを更新する
npm
コマンド自身を更新する。
$ npm update -g npm
ドキュメント:
Updating packages downloaded from the registry | npm Docs [Official]
npm-update | npm Docs [Official]
参考:
How to update globally installed npm packages – Stack Overflow
グローバルにインストールしない方がいい
- 必要なパッケージが
package.json
にリストされていなくてもローカルで動作するようになり、他の環境での動作を保証できなくなる。 package.json
にリストされていないパッケージに依存していた場合、パッケージのバージョンが指定できないため、別のデバイス上では環境が再現できず正常に動作しないことがある。- Node.js で何かしら開発する場合、ポータビリティをなるべく保つためにグローバルにインストールしたパッケージに依存しないように
package.json
を構成する。
参考:
僕が npm install に -g をつけないわけ – Qiita
npm でグローバルインストールをしない方が良い理由 | Youki Takemoto’s Blog
--prefix オプション
参考:
サブディレクトリでも npm コマンドを複数同時に実行したい – Qiita
サブディレクトリで別の npm プロジェクト作るときのメモ | へぶん
サブフォルダにある package.json で npm install したいときの prefix オプションを実験してうまくいったメモ | 1ft-seabass.jp.MEMO
npm run command --prefix directory でサブディレクトリのコマンドを実行する | Rhyztech blog
ディレクトリを指定して npm でモジュールをインストールする (buzztaiki) – GitHub Gist
npm install module in current directory – Stack Overflow
Can anyone help me with npm --prefix? – Stack Overflow
スクリプト
参考:
今まで知らずにいた npm スクリプトでできる 3つのこと | Twilio Blog
npm-scripts で使える便利モジュールたち – Qiita
How to suppress output when running npm scripts – Stack Overflow
npm audit
ドキュメント:
npm-audit | npm Docs [Official]
参考:
脆弱性の警告を受けた npm パッケージの依存関係を力技で直す – Qiita
npm audit って何?って時に少し調べた時のノート | Programming Self-Study Notebook
npm install 時に npm audit のセキュリティ警告が出る場合の対処法 | 茶トラ猫のエンジニア日記
npm audit fix では解決できなかった脆弱性の修正 | Sonoko Mizuki
久しぶりに使うレポジトリの脆弱性報告が有りまくったので npm package をアップデートをしてスッキリする | Nobuhiro Takahashi
npm audit: Broken by Design | Overreacted
npm audit の脆弱性警告はどこまで対応するべきでしょうか – teratail
How to check for only high vulnerabilities when using “npm audit”? – Stack Overflow
npm rebuild コマンド
ドキュメント:
npm-rebuild | npm Docs [Official]
npm test コマンド
参考:
Hide compile warnings during test runs – Stack Overflow
node_modules
参考:
Why there is a node_modules folder under my home folder? – Stack Overflow
Why does npm install local packages in my home directory? – Stack Overflow
PATH
参考:
npm でローカルインストールしたパッケージを CLI でコマンド実行する方法 – Qiita
グローバルインストールした npm パッケージに PATH を通す方法 | DevelopersIO
Node で node_modules にパスを通す | KayaMemo
node_modules 以下の .bin をパスに加える | rmaruon
npm でパッケージをインストールする | The Strange Storage
node_modules 以下のライブラリに PATH を通す – Qiita
npm でローカルインストールした node_modules にパスが通らない – teratail
コマンドを更新する
npm
コマンド自体を更新する。
$ npm update -g npm
参考:
npm 自体のアップデートコマンド | infraya.work
Node.js と npm をアップデートする方法 | Rriver
npm 自体のアップデートを npm コマンドでする | 株式会社 CONFRAGE IT ソリューション事業部
About npm CLI Versions | npm Docs [Official]
パッケージをリリースする
ドキュメント:
Getting Started | npm Docs [Official]
About npm | npm Docs [Official]
Packages and Modules | npm Docs [Official]
参考:
How to Create and Publish an NPM Package | freeCodeCamp
Best Practices for Creating a Modern npm Package | Snyk
Build and Publish Your First NPM Package (Ogunniyi Tunmise) | The Andela Way
--silent / --loglevel オプション
警告を表示せずにインストールには、コマンドに --silent
オプションを指定する。
$ npm install --silent
または、loglevel
を変更してインストールする。
$ npm install --loglevel=error --no-update-notifier
参考:
disable warnings – Stack Overflow
WARN on dependency – Stack Overflow
グローバルのインストール先を変更する
ドキュメント:
Resolving EACCES permissions errors when installing packages globally | npm Docs [Official]
参考:
Install npm packages globally without sudo – sindresorhus/guides – GitHub
Install NPM into home directory with distribution Node.js package – Stack Overflow
Enable npm install -g for all users – Stack Overflow
CI
ロックファイル (package-lock.json
) から依存関係をインストールする。
ドキュメント:
参考:
npm install と npm ci の違いをメモする | CLOVER
npm install と npm ci って結局どう使うの? | Mitsuyuki.Shiiba
CI/CD で npm ci する際は ~/.npm をキャッシュしよう | DevelopersIO
あなたが npm install をしてはいけない時 | Minimal Blog
npm ci しようとしたら npm ERR! `npm ci` can only install packages エラー | m_03
ENOLOCAL エラー
原因:
package-lock.json
で指定されたモジュールがローカルの node_modules
以下に存在しない。
対処法:
package-lock.json
を削除してモジュールを再インストールする。
$ rm package-lock.json $ npm install
参考:
ERR! code ENOLOCAL npm ERR! Could not install from – Stack Overflow
old lockfile 警告
原因:
古いバージョンの npm
コマンドで作成したロックファイルが検出された。
対処法:
新しい npm
コマンドでロックファイルを更新する。
$ npm update -g npm $ npm install --package-lock-only
参考:
npm update で表示される npm WARN old lockfile を解消する | ledsun blog
トラブルシューティング
Troubleshooting | npm Docs [Official]
リファレンス
CLI Commands | npm Docs [Official]
ドキュメント
リポジトリ
npm/cli: the Package Manager for JavaScript – GitHub
まとめ/Tips
npm-force-resolutions
リポジトリ:
入手:
node_modules-path
リポジトリ:
入手: