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設定をする。
NODE_TLS_REJECT_UNAUTHORIZED=0 の設定をする。
#export NODE_TLS_REJECT_UNAUTHORIZED=0
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 │
└───────────────┴──────────────────────────────────────────────────────────────┘