プロキシにNexus 3.0.1-01を使用していますhttps://registry.npmjs.org/ プロキシを含むグループをnpmjs.orgとローカルにホストされているnpmリポジトリに設定しました。ローカルのnpm-configではレジストリとしてNexusにnpmを指摘しています。 インターネットへの接続はすべて、当社の企業向けHTTPプロキシを通過します。Nexus 3のNTPプロキシがほとんど失敗する
Nexusでbower(例:npm install -g bower
)などの「公開」依存関係を解決すると、10回中8回失敗します。私たちが公式のレジストリを指すとき、すべてが時間の100%正常に動作します。
エラーは次のようになります。
$ npm install -g bower
npm ERR! Linux 3.13.0-107-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "bower"
npm ERR! node v4.3.2
npm ERR! npm v2.14.12
npm ERR! Cannot convert undefined or null to object
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! npm-debug.log
は、デバッグログを見ると、私たちは、HTTP 404、その後、HTTP 304を取得し、インクルードは失敗してインストールします。
2 info using [email protected]
3 info using [email protected]
[...]
21 http request GET http://nexus/repository/npm/bower
22 http 404 http://nexus/repository/npm/bower
23 verbose headers { date: 'Thu, 02 Feb 2017 08:32:35 GMT',
23 verbose headers server: 'Nexus/3.0.1-01 (OSS)',
23 verbose headers 'x-frame-options': 'SAMEORIGIN',
23 verbose headers 'x-content-type-options': 'nosniff',
23 verbose headers 'content-type': 'application/json',
23 verbose headers 'content-length': '37',
23 verbose headers 'x-cache': 'MISS from proxy',
23 verbose headers 'x-cache-lookup': 'HIT from proxy:3128',
23 verbose headers connection: 'keep-alive' }
24 silly get cb [ 304, undefined ]
25 verbose get saving undefined to /user/.npm/nexus/repository/npm/bower/.cache.json
26 silly addNameTag next cb for bower with tag latest
27 verbose stack TypeError: Cannot convert undefined or null to object
27 verbose stack at Function.keys (native)
27 verbose stack at installTargetsError (/usr/lib/node_modules/npm/lib/cache/add-named.js:273:24)
27 verbose stack at next (/usr/lib/node_modules/npm/lib/cache/add-named.js:94:10)
27 verbose stack at RES (/usr/lib/node_modules/npm/node_modules/inflight/inflight.js:23:14)
27 verbose stack at f (/usr/lib/node_modules/npm/node_modules/once/once.js:17:25)
27 verbose stack at fixName (/usr/lib/node_modules/npm/lib/cache/add-named.js:29:5)
27 verbose stack at saved (/usr/lib/node_modules/npm/lib/cache/caching-client.js:173:7)
27 verbose stack at /usr/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:210:7
27 verbose stack at FSReqWrap.oncomplete (fs.js:82:15)
私が言ったように、私たちは何回かインストールを繰り返すことができ、結局それは動作します。 https://registry.npmjs.org/トラフを使用すると、プロキシは正常に動作します。
Nexusレジストリ(プロキシ)として使用するとうまくいくNexus 2.11.3-01もあります。
Sonatype JIRAを検索しましたが、これがNexus 3の問題であるかどうかのヒントは見つかりませんでした。
ご迷惑をおかけして申し訳ありません。
どのバージョンのnpm/nodeとosを使用していますか?問題を再現するのに役立ちます。 – DarthHater
最新(3.2.0)にアップグレードして、この問題があるかどうか確認できますか? – joedragons
私はさらに調査を行った。 1つの問題は、npmが毎回レジストリにアクセスしないことです。もう1つは、明らかにnpmがかなりの時間「見つからない」結果をキャッシュすることです。 解決するたびにキャッシュを無効にした後も、問題は残ります。解決は2回実行され、失敗(404)した後2回失敗して失敗します。 npm 1.3.10を使用します。このバージョンはno_proxy変数を認識していないので、解決は次のようになります。 npm =>プロキシ=> nexus =>プロキシ=> npmjs.org ここではプロキシと思われます... – Bebef