web-dev-qa-db-ja.com

NPMは、破損したパッケージをVerdaccioインスタンスからプルします

アプリケーションで基本的なnpm installを実行すると、開発者をセットアップしようとしています。破損したパッケージの環境は、Verdaccioプロキシインスタンスからプルされます。

再現するには

動作を再現する手順:

  1. 依存関係の追加など、プロジェクトのpackage.jsonを設定します。
  2. Verdaccioインスタンスを使用するようにローカルシステムを設定します:npm set registry [[Verdaccio Server URL]]:4873
  3. Package.jsonがあるディレクトリ内でnpm installを実行します。

結果

次のような大量の出力が得られます。

npm http fetch GET 200 [[Proxy NPM Site]]/@angular%2fplatform-browser-dynamic/-/platform-browser-dynamic-5.2.11.tgz 6430ms
npm WARN tarball tarball data for @angular/[email protected] (sha512-NT8xYl7Vr3qPygisek3PlXqNROEjg48GXOEsDEc7c8lDBo3EB9Tf328fWJD0GbLtXZNhmmNNxwIe+qqPFFhFAA==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for [email protected] (sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for [email protected] (sha1-1B/UIVTAWTQiy4PEc6OCiqdSW/U=) seems to be corrupted. Trying one more time.

パッケージのURLエンコード名、この場合は@angular%2fplatform-browser-dynamicに注意してください。プロキシをhttps://registry.npmjs.org/に設定したときにこれを取得できません。

もちろん、私がしたいことは、あたかも公式のレジストリに接続しているかのようにnpm installを実行できることです。

構成ファイルとログファイル

追加情報

  • NPMバージョン:最新-6.1.0ですが、古いバージョンでも発生します。
  • Verdaccioが実行されているノードバージョン:10.4.0
  • クライアントが実行されているノードのバージョン:10.4.0

環境:Windows Server 2012(SP2)

Verdaccioが稼働しているサーバーは、プロキシの背後にありません。

8
Chris K.

したがって、以下を実行した後、すべてが意図したとおりに機能しました。

rmdir /S /Q node_modules (or rm -rf node_modules on a *nix derivative OS)
del package-lock.json (or rm package-lock.json on a *nix derivative OS)
npm set registry [[My Verdaccio Instance's IP]]:4873
npm cache clean --force
npm install --force --verbose --no-bin-links
9
Chris K.

NPMバージョン3にロールバックすると、再び機能し始めます。 NPM @ 3でVerdaccioに公開してからNPM @> = 5でプルすると、この問題が発生しました。

2
cjbarth

Verdaccioのキャッシュをオフにする必要がありました

uplinks:
  npmjs:
    url: https://registry.npmjs.org/
    cache: false
0
seppestaes

これは、Angular CLIではなく、node/npmの問題のようです。

使用することをお勧めします

  1. npm clear cache --force
  2. npm install

ありがとう。

0
iamsurajdc