NPM从Verdaccio实例中提取损坏的包

时间:2018-06-13 17:26:12

标签: node.js npm npmjs sinopia

当我在应用程序中执行基本npm install时,我正在尝试设置开发人员。最终从我的Verdaccio代理实例中提取损坏的包的环境。

重现

重现行为的步骤:

  1. 为我的项目设置package.json,包括添加我的依赖项, 等。
  2. 将我的本地系统设置为使用我的Verdaccio实例:npm set registry [[Verdaccio Server URL]]:4873
  3. 在我拥有package.json的目录中执行npm install
  4. 结果

    我获得了类似于以下内容的大量输出:

    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/router@5.2.11 (sha512-NT8xYl7Vr3qPygisek3PlXqNROEjg48GXOEsDEc7c8lDBo3EB9Tf328fWJD0GbLtXZNhmmNNxwIe+qqPFFhFAA==) seems to be corrupted. Trying one more time.
    npm WARN tarball tarball data for jquery@3.3.1 (sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==) seems to be corrupted. Trying one more time.
    npm WARN tarball tarball data for ng-bootstrap@1.6.3 (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所在的服务器不在代理服务器后面。

6 个答案:

答案 0 :(得分:6)

因此,在执行以下操作后,一切按预期工作:

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

答案 1 :(得分:0)

如果您回滚到NPM版本3,它将再次开始工作。使用NPM @ 3发布到Verdaccio,然后使用NPM @> = 5进行拉动对我造成了这个问题。

答案 2 :(得分:0)

必须关闭Verdaccio的缓存

other = False

答案 3 :(得分:0)

这似乎是您的节点/ npm的问题,而不是Angular CLI的问题。

我建议您尝试使用

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

谢谢。

答案 4 :(得分:0)

删除package-lock.json。它解决了我的问题。

答案 5 :(得分:0)

我通过以下步骤解决了我的问题:

  1. 删除 package-lock.json
  2. 运行npm cache clear --force
  3. 运行npm cache verify
  4. 运行npm install