npm - npm 安装错误“无法读取未定义的属性‘最新’”
问题描述
我正在尝试在公认的旧版本 npm 上运行“npm install”命令并遇到以下问题,即使在运行“npm cache clean”之后,我们正在运行版本 1.3.6,因为我们正在尝试重建现有硬件故障后的软件。任何指针将不胜感激。
npm WARN package.json ooi-ui@0.0.1 No repository field.
npm http GET http://registry.npmjs.org/videojs-wavesurfer
npm http 200 http://registry.npmjs.org/videojs-wavesurfer
npm http GET http://registry.npmjs.org/videojs-wavesurfer/-/videojs-wavesurfer-2.11.0.tgz
npm http 200 http://registry.npmjs.org/videojs-wavesurfer/-/videojs-wavesurfer-2.11.0.tgz
npm http GET http://registry.npmjs.org/video.js
npm http GET http://registry.npmjs.org/wavesurfer.js
npm http 200 http://registry.npmjs.org/wavesurfer.js
npm http GET http://registry.npmjs.org/wavesurfer.js/-/wavesurfer.js-4.2.0.tgz
npm http 200 http://registry.npmjs.org/wavesurfer.js/-/wavesurfer.js-4.2.0.tgz
npm http 200 http://registry.npmjs.org/video.js
npm http GET http://registry.npmjs.org/video.js/-/video.js-7.10.2.tgz
npm http 200 http://registry.npmjs.org/video.js/-/video.js-7.10.2.tgz
npm http GET http://registry.npmjs.org/babel/runtime
npm http GET http://registry.npmjs.org/videojs/http-streaming/2.2.4
npm http GET http://registry.npmjs.org/videojs/xhr/2.5.1
npm http GET http://registry.npmjs.org/global/4.3.2
npm http GET http://registry.npmjs.org/keycode
npm http GET http://registry.npmjs.org/safe-json-parse/4.0.0
npm http GET http://registry.npmjs.org/videojs-font/3.2.0
npm http GET http://registry.npmjs.org/videojs-vtt.js
npm http 200 http://registry.npmjs.org/keycode
npm http GET http://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz
npm http 200 http://registry.npmjs.org/safe-json-parse/4.0.0
npm http GET http://registry.npmjs.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz
npm http 404 http://registry.npmjs.org/videojs/http-streaming/2.2.4
npm http 200 http://registry.npmjs.org/global/4.3.2
npm http 405 http://registry.npmjs.org/babel/runtime
npm http GET http://registry.npmjs.org/global/-/global-4.3.2.tgz
npm ERR! TypeError: Cannot read property 'latest' of undefined
npm ERR! at next (/usr/lib/node_modules/npm/lib/cache.js:687:35)
npm ERR! at /usr/lib/node_modules/npm/lib/cache.js:675:5
npm ERR! at saved (/usr/lib/node_modules/npm-registry-client/lib/get.js:148:7)
npm ERR! at /usr/lib/node_modules/graceful-fs/polyfills.js:133:7
npm ERR! at Object.oncomplete (fs.js:108:15)
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 2.6.32-754.33.1.el6.x86_64
npm ERR! command "node" "/usr/bin/npm" "install"
npm ERR! cwd /var/ooiui/ooi-ui
npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6
npm ERR! type non_object_property_load
npm http 200 http://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz
npm http 200 http://registry.npmjs.org/videojs-vtt.js
npm http 200 http://registry.npmjs.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz
npm ERR! Error: No dist in undefined package
npm ERR! at next (/usr/lib/node_modules/npm/lib/cache.js:746:26)
npm ERR! at /usr/lib/node_modules/npm/lib/cache.js:739:5
npm ERR! at saved (/usr/lib/node_modules/npm-registry-client/lib/get.js:148:7)
npm ERR! at /usr/lib/node_modules/graceful-fs/polyfills.js:133:7
npm ERR! at Object.oncomplete (fs.js:108:15)
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 2.6.32-754.33.1.el6.x86_64
npm ERR! command "node" "/usr/bin/npm" "install"
npm ERR! cwd /var/ooiui/ooi-ui
npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6
npm http GET http://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.2.tgz
npm http 404 http://registry.npmjs.org/videojs/xhr/2.5.1
npm http 200 http://registry.npmjs.org/global/-/global-4.3.2.tgz
npm http 200 http://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.2.tgz
npm http 200 http://registry.npmjs.org/videojs-font/3.2.0
npm http GET http://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz
npm http 200 http://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /var/ooiui/ooi-ui/npm-debug.log
npm ERR! not ok code 0
“404”错误代码似乎很清楚意味着 npm 没有从注册表中找到包。这是表演的终结者,还是有前进的道路?提前致谢。
解决方案
TL; DR 更新到npm@2
.
在撰写本文时,npm 1.3.6 已经 7 岁了。它长期不受支持,并且与当前注册表不兼容的可能性非常高。
相比之下,我注意到您正在运行“仅”四年的 Node.js 0.10.48。虽然它也早已失去支持,但至少 0.10.48 是 0.10 系列中的最新版本。所以这很好。
Node.js 0.10.48 随 npm 2.x 一起提供,因此不知何故,您拥有的 npm 版本比您使用的 Node.js 版本默认附带的版本更旧。这通常表明机器上安装了多个版本,并且 PATH 异常可能导致神秘错误。如果你能解决这个问题,它可能会在这里解决你的问题。
上面日志中列出的第一个依赖项是 videojs-wavesurfer 2.11.0。我尝试使用 Node.js 0.10.48 和 npm 1.3.6 安装它。我收到证书错误,因此我(暂时)禁用了 SSL 证书验证。之后,我再次尝试并收到与您类似的错误。
我更新到npm@2
然后能够毫无问题地安装该软件包。
推荐阅读
- node.js - 如何在无服务器节点 js 中使用 i18next?
- python - 为了在 Django 中过滤数据,为多列构建动态查询
- python - 尝试过滤列表中的字符串时出现问题?
- java - 我想共享多媒体文件并想存储在内部内存中
- html - 制作可点击的div
- mongodb - 在 laravel mongodb 中按日期分组
- django - Django 在我的注册页面中返回错误的帮助文本
- excel - 当我将行从一张纸复制到另一张纸时移动粘贴数据的问题
- debian - tshark "--export-objects" 不起作用,与手册页相反
- java - android中带有溢出事件的自定义日历视图