npmとは
パッケージ管理システムの一種。Node Package Manage
npm install
npm installは、npmリポジトリからライブラリ(正確にはパッケージと呼びます)をダウンロードしてくるコマンドです。 ライブラリそのものは下記のサイトから取得されます。
#npm install
npm run
npm runでビルドが実施される。
#npm run buildProd
npm トラブルシュート
gyp ERR! stack Error: unable to get local issuer certificate のエラーが出た場合
proxy設定をする。
#export NODE_TLS_REJECT_UNAUTHORIZED=0
- Dockerfile に以下の設定を追加する。
RUN npm -g config set http-proxy http://proxyname:8080 RUN npm -g config set https-proxy http://proxyname:8080 RUN npm -g config set strict-ssl false RUN npm -g config set proxy http://proxyname:8080 RUN npm -g config set registry http://registry.npmjs.org
npmでpermission deniedになった時の対処法
npmディレクトリのパスを確認する npm config get prefixを実行するとおそらく/usr/localが表示される npmディレクトリのオーナーを自分のアカウントに変更する
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
- npm install でgit repository に接続できないとき。
以下のようなエラーが出ており、npm installに失敗する。
npm ERR! Error while executing: npm ERR! /usr/bin/git ls-remote -h -t ssh://git@github.com/eligrey/FileSaver.js.git npm ERR! npm ERR! ssh: connect to host github.com port 22: No route to host npm ERR! fatal: Could not read from remote repository.
解決策 npmのpackage.jsonで、sshプロトコルで、gitにアクセスするように指定している可能性がある。
package-lock.json: "file-saver": "git+ssh://git@github.com/eligrey/FileSaver.js.git#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
これを以下のようにhttpsプロトコルに修正すれば、アクセスできるようになる。
package-lock.json: "file-saver": "https://git@github.com/eligrey/FileSaver.js.git#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
npm list (パッケージの依存性確認)
npmで管理しているパッケージをリスト形式で出力 パッケージの依存関係やバージョンを調べるのに便利です。
#npm list ├─┬ @agm/core@1.1.0 │ └── tslib@1.14.1 ├─┬ @angular-devkit/architect@0.1303.7 │ ├─┬ @angular-devkit/core@13.3.7 │ │ ├─┬ ajv@8.9.0 │ │ │ ├── fast-deep-equal@3.1.3 │ │ │ ├── json-schema-traverse@1.0.0 │ │ │ ├── require-from-string@2.0.2 │ │ │ └─┬ uri-js@4.4.1 │ │ │ └── punycode@2.1.1 deduped │ │ ├─┬ ajv-formats@2.1.1 │ │ │ └── ajv@8.9.0 deduped │ │ ├── fast-json-stable-stringify@2.1.0 │ │ ├─┬ magic-string@0.25.7 │ │ │ └── sourcemap-codec@1.4.8 deduped │ │ ├── UNMET PEER DEPENDENCY rxjs@6.6.7 deduped │ │ └── source-map@0.7.3 │ └── UNMET PEER DEPENDENCY rxjs@6.6.7 deduped ├─┬ @angular-devkit/build-angular@13.3.7 │ ├─┬ @ampproject/remapping@2.2.0 │ │ ├─┬ @jridgewell/gen-mapping@0.1.1 │ │ │ ├── @jridgewell/set-array@1.1.1
npm outdated (最新のパッケージの確認)
現在インストールされているパッケージが最新であるかを確認するコマンドです。
$ npm outdated Package Current Wanted Latest Location @agm/core 1.1.0 1.1.0 3.0.0-beta.0 nec-edge-ui @angular-devkit/architect 0.1303.7 0.1303.9 0.1401.0 nec-edge-ui @angular-devkit/build-angular 13.3.7 13.3.9 14.1.0 nec-edge-ui
npm audit (脆弱性の確認)
現在確認されているパッケージの脆弱性を報告します。
$ npm audit ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ High │ Regular expression denial of service in scss-tokenizer │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ scss-tokenizer │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ No patch available │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ node-sass [dev] │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ node-sass > sass-graph > scss-tokenizer │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://github.com/advisories/GHSA-7mwh-4pqv-wmr8 │ └───────────────┴──────────────────────────────────────────────────────────────┘