Npmコマンドを使用してエクスプレスフレームワークをインストールしようとしていますが、次のエラーが発生します。
エラーメッセージは
E:\myFindings\nodejs_programs\node>npm install -g express
npm http GET https://registry.npmjs.org/express
npm ERR! Error: SSL Error: CERT_UNTRUSTED
npm ERR! at ClientRequest.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\main.js:409:26)
npm ERR! at ClientRequest.g (events.js:185:14)
npm ERR! at ClientRequest.EventEmitter.emit (events.js:88:17)
npm ERR! at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1445:7)
npm ERR! at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:111:23)
npm ERR! at CleartextStream.socketOnData [as ondata] (http.js:1356:20)
npm ERR! at CleartextStream.CryptoStream._Push (tls.js:396:27)
npm ERR! at SecurePair.cycle (tls.js:751:20)
npm ERR! at EncryptedStream.CryptoStream.write (tls.js:131:13)
npm ERR! at Socket.ondata (stream.js:38:26)
npm ERR! [Error: SSL Error: CERT_UNTRUSTED]
npm ERR! You may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "express"
npm ERR! cwd E:\myFindings\nodejs_programs\node
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
npm ERR! message SSL Error: CERT_UNTRUSTED
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! E:\myFindings\nodejs_programs\node\npm-debug.log
npm ERR! not ok code 0
整理するのに役立ちます
私は上記のエラーの理由を得たと思います。クライアントネットワークで動作するために提供される企業プロキシ(仮想プライベートネットワーク)です。その接続がないと、maven buildまたはnpm installであっても同じ問題に頻繁に直面しました。
以下のコマンドを使用してhttpsをバイパスできます。
npm config set strict-ssl false
または、以下のようにhttpsまたはhttpからレジストリURLを設定します。
npm config set registry="http://registry.npmjs.org/"
ただし、個人的には、httpsをバイパスすることは本当の解決策ではないと考えていますが、回避策として使用できます。
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
Node.jsのインストールを更新します。次のコマンドで実行できます( here から):
Sudo npm cache clean -f
Sudo npm install -g n
Sudo n stable
編集:さて、あなたが実際にソフトウェアの古代バージョンを実行する正当な理由がある場合、npm set ca null
は問題を修正します。これは、組み込みのnpm証明書が長年にわたって期限切れになったために起こりました。
私は同じ問題を抱えていて、最終的にノードのバージョンが古いことを理解しました。たとえば、次の手順で現在のアクティブなLTSノードバージョンをUbuntuにインストールできます。
Sudo apt-get update
curl -sL https://deb.nodesource.com/setup_10.x | Sudo -E bash -
Sudo apt-get install nodejs -y
より多くのバージョンとシステムのインストール手順は、次のリンクにあります。
https://github.com/nodesource/distributions/blob/master/README.md
企業のプロキシの背後にいる場合は、企業のプロキシでnpmにこの設定を試してください。
npm --https-proxy=http://proxy.company.com install express -g
私はグーグル経由で投稿につまずいたので:
npm ci
を使用してみてください。これはnpm install
よりもはるかに多くなります。
マニュアルから:
要するに、npm installとnpm ciの使用の主な違いは次のとおりです。
- プロジェクトには、既存のpackage-lock.jsonまたはnpm-shrinkwrap.jsonが必要です。
- パッケージロックの依存関係がpackage.jsonの依存関係と一致しない場合、npm ciはパッケージロックを更新する代わりにエラーで終了します。
- npm ciは一度にプロジェクト全体のみをインストールできます。このコマンドでは個々の依存関係を追加できません。
- Node_modulesが既に存在する場合、npm ciがインストールを開始する前に自動的に削除されます。
- Package.jsonやパッケージロックのいずれにも書き込まれません。インストールは基本的に凍結されます。