【问题标题】:NPM is failing to install any scoped packagesNPM 无法安装任何作用域包
【发布时间】:2017-11-26 07:46:24
【问题描述】:

我在 Node v6.10.3 和 NPM v3.8.6 上。

我的问题是我无法安装任何范围包。一切都返回 404 Not Found。

以下是一些示例:

2 info using npm@3.8.6
3 info using node@v6.10.3
4 silly loadCurrentTree Starting
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 silly fetchPackageMetaData @angular/common@^4.1.2
8 silly fetchNamedPackageData @angular/common
9 silly mapToRegistry name @angular/common
10 silly mapToRegistry scope (from package name) @angular
11 verbose mapToRegistry no registry URL found in name for scope @angular
12 silly mapToRegistry using default registry
13 silly mapToRegistry registry http://registry.npmjs.org/
14 silly mapToRegistry data Result {
14 silly mapToRegistry   raw: '@angular/common',
14 silly mapToRegistry   scope: '@angular',
14 silly mapToRegistry   name: '@angular/common',
14 silly mapToRegistry   rawSpec: '',
14 silly mapToRegistry   spec: 'latest',
14 silly mapToRegistry   type: 'tag' }
15 silly mapToRegistry uri http://registry.npmjs.org/@angular%2fcommon
16 verbose request uri http://registry.npmjs.org/@angular%2fcommon
17 verbose request no auth needed
18 info attempt registry request try #1 at 4:58:49 PM
19 verbose request id cd941220750809c1
20 http request GET http://registry.npmjs.org/@angular%2fcommon
21 http 404 http://registry.npmjs.org/@angular%2fcommon
22 verbose headers { date: 'Thu, 22 Jun 2017 20:58:49 GMT',
22 verbose headers   'content-type': 'application/json',
22 verbose headers   'content-length': '21',
22 verbose headers   connection: 'keep-alive',
22 verbose headers   'cache-control': 'max-age=0',
22 verbose headers   'accept-ranges': 'bytes',
22 verbose headers   via: '1.1 varnish',
22 verbose headers   age: '0',
22 verbose headers   'x-served-by': 'cache-ord1732-ORD',
22 verbose headers   'x-cache': 'MISS',
22 verbose headers   'x-cache-hits': '0',
22 verbose headers   'x-timer': 'S1498165129.495392,VS0,VE389' }
23 silly get cb [ 404,
23 silly get   { date: 'Thu, 22 Jun 2017 20:58:49 GMT',
23 silly get     'content-type': 'application/json',
23 silly get     'content-length': '21',
23 silly get     connection: 'keep-alive',
23 silly get     'cache-control': 'max-age=0',
23 silly get     'accept-ranges': 'bytes',
23 silly get     via: '1.1 varnish',
23 silly get     age: '0',
23 silly get     'x-served-by': 'cache-ord1732-ORD',
23 silly get     'x-cache': 'MISS',
23 silly get     'x-cache-hits': '0',
23 silly get     'x-timer': 'S1498165129.495392,VS0,VE389' } ]
24 silly fetchPackageMetaData Error: Not found : @angular/common


1 verbose cli   'install',
1 verbose cli   '@types/jasmine' ]
2 info using npm@3.8.6
3 info using node@v6.10.3
4 silly loadCurrentTree Starting
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 silly fetchPackageMetaData @types/jasmine@2.5.38
8 silly fetchNamedPackageData @types/jasmine
9 silly mapToRegistry name @types/jasmine
10 silly mapToRegistry scope (from package name) @types
11 verbose mapToRegistry no registry URL found in name for scope @types
12 silly mapToRegistry using default registry
13 silly mapToRegistry registry http://registry.npmjs.org/
14 silly mapToRegistry data Result {
14 silly mapToRegistry   raw: '@types/jasmine',
14 silly mapToRegistry   scope: '@types',
14 silly mapToRegistry   name: '@types/jasmine',
14 silly mapToRegistry   rawSpec: '',
14 silly mapToRegistry   spec: 'latest',
14 silly mapToRegistry   type: 'tag' }
15 silly mapToRegistry uri http://registry.npmjs.org/@types%2fjasmine
16 verbose request uri http://registry.npmjs.org/@types%2fjasmine
17 verbose request no auth needed
18 info attempt registry request try #1 at 5:00:56 PM
19 verbose request id 7a34acc3581b3816
20 http request GET http://registry.npmjs.org/@types%2fjasmine
21 http 404 http://registry.npmjs.org/@types%2fjasmine
22 verbose headers { date: 'Thu, 22 Jun 2017 21:00:57 GMT',
22 verbose headers   'content-type': 'application/json',
22 verbose headers   'content-length': '2',
22 verbose headers   connection: 'keep-alive',
22 verbose headers   'cache-control': 'max-age=0',
22 verbose headers   'accept-ranges': 'bytes',
22 verbose headers   via: '1.1 varnish',
22 verbose headers   age: '0',
22 verbose headers   'x-served-by': 'cache-ord1729-ORD',
22 verbose headers   'x-cache': 'MISS',
22 verbose headers   'x-cache-hits': '0',
22 verbose headers   'x-timer': 'S1498165257.978535,VS0,VE139',
22 verbose headers   vary: 'Accept-Encoding' }
23 silly get cb [ 404,
23 silly get   { date: 'Thu, 22 Jun 2017 21:00:57 GMT',
23 silly get     'content-type': 'application/json',
23 silly get     'content-length': '2',
23 silly get     connection: 'keep-alive',
23 silly get     'cache-control': 'max-age=0',
23 silly get     'accept-ranges': 'bytes',
23 silly get     via: '1.1 varnish',
23 silly get     age: '0',
23 silly get     'x-served-by': 'cache-ord1729-ORD',
23 silly get     'x-cache': 'MISS',
23 silly get     'x-cache-hits': '0',
23 silly get     'x-timer': 'S1498165257.978535,VS0,VE139',
23 silly get     vary: 'Accept-Encoding' } ]
24 silly fetchPackageMetaData Error: Registry returned 404 for GET on http://registry.npmjs.org/@types%2fjasmine

到目前为止,我已经尝试在范围上设置注册表(如下所示)、更改 npm 版本、清除缓存和删除节点模块。

npm 配置集 @types:registry http://registry.npmjs.org/

到目前为止,没有任何效果。我觉得这可能是当 npm 尝试访问作用域包时发生的某种编码问题。我仍然能够安装所有无范围的软件包。

另一件事,我注意到这个问题只发生在 npmjs 注册表上。我为@progress (https://registry.npmjs.telerik.org) 设置了另一个作用域注册表,实际上我可以从那里安装包。

任何建议或提示将不胜感激。

【问题讨论】:

    标签: node.js angular npm installation http-status-code-404


    【解决方案1】:

    发现这是由我公司的代理引起的。

    重定向导致转义的“/”变为未转义,因此它命中https://registry.npmjs.org/@angular/core而不是 https://registry.npmjs.org/@angular%2fcore

    【讨论】:

    • 那么你如何逃脱它呢?您能否提供有关修复的更多详细信息?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多