【发布时间】:2016-05-03 11:54:05
【问题描述】:
我正在使用 Ionic 框架来构建混合应用程序。根据官网,我需要获取 Node.js 的 4.2.4 版本,其中包括 npm 包管理器。 Ionic 所需的依赖项之一是 cordova,因此我运行以下命令来获取它
C:\Users\ferrero>npm install -g cordova
之后,控制台记录
npm info it worked if it ends with ok
npm verb cli [ 'C:\\Program Files\\nodejs\\node.exe',
npm verb cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
npm verb cli 'prefix',
npm verb cli '-g' ]
npm info using npm@2.14.12
npm info using node@v4.2.4
npm verb exit [ 0, true ]
npm info ok
npm info it worked if it ends with ok
npm verb cli [ 'C:\\Program Files\\nodejs\\node.exe',
npm verb cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm- cli.js',
npm verb cli 'install',
npm verb cli 'cordova' ]
npm info using npm@2.14.12
npm info using node@v4.2.4
npm verb config Skipping project config: C:\Users\ferrero/.npmrc.
(matches userconfig)
npm verb install initial load of C:\Users\ferrero\package.json
npm verb readDependencies loading dependencies from C:\Users\ferrero\package.json
npm verb cache add spec cordova
npm verb addNamed "latest" is being treated as a dist-tag for cordova
npm info addNameTag [ 'cordova', 'latest' ]
npm verb addNameTag registry:https://registry.npmjs.org/cordova not in flight; fetching
npm verb request uri https://registry.npmjs.org/cordova
npm verb request no auth needed
npm info attempt registry request try #1 at 16:47:06
npm verb request id 62f85abc5c5b7cd5
npm verb etag "6KQ69KRX02Y8MUJFT56H9DE6N"
npm http request GET https://registry.npmjs.org/cordova
npm info retry will retry, error on last attempt: Error: self signed certificate in certificate chain
从日志中可以看到,npm 运行版本 2.14.12,它抱怨原因是自签名证书 - 可能由 https://registry.npmjs.org/cordova 颁发。所以,为了克服这个问题,我跑了
npm config set registry=http://registry.npmjs.org
然后,之后(只是相关部分)
C:\Users\ferrero>npm install -g cordova
npm verb cache add spec cordova
npm verb addNamed "latest" is being treated as a dist-tag for cordova
npm info addNameTag [ 'cordova', 'latest' ]
npm verb addNameTag registry:http://registry.npmjs.org/cordova not in flight; fetching
npm verb request uri http://registry.npmjs.org/cordova
npm verb request no auth needed
npm info attempt registry request try #1 at 16:59:34
npm verb request id 359f93cb3aa8b76e
npm verb etag "6KQ69KRX02Y8MUJFT56H9DE6N"
npm http request GET http://registry.npmjs.org/cordova
npm http 304 http://registry.npmjs.org/cordova
npm verb headers {
date: 'Tue, 26 Jan 2016 18:59:34 GMT',
npm verb headers via: '1.1 varnish',
npm verb headers 'cache-control': 'max-age=300',
npm verb headers etag: '"6KQ69KRX02Y8MUJFT56H9DE6N"',
npm verb headers age: '263',
npm verb headers connection: 'keep-alive',
npm verb headers 'x-served-by': 'cache-atl6230-ATL',
npm verb headers 'x-cache': 'HIT',
npm verb headers 'x-cache-hits': '1',
npm verb headers 'x-timer': 'S1453834774.362657,VS0,VE1',
npm verb headers vary: 'Accept'
}
npm verb etag http://registry.npmjs.org/cordova from cache
npm verb get saving cordova to C:\Users\ferrero\AppData\Roaming\npm-cache\registry.npmjs.org\cordova\.cache.json
npm verb addNamed "5.4.1" is a plain semver version for cordova
npm verb addRemoteTarball http://registry.npmjs.org/cordova/-/cordova-5.4.1.tgz
not in flight; adding
npm verb addRemoteTarball [ 'http://registry.npmjs.org/cordova/-/cordova-5.4.1.tgz',
npm verb addRemoteTarball 'bc56bc1d3c5387a7926408212dfbce59002f9d76' ]
这一次,它没有抱怨其他任何事情。相反,加载指示器 - 一个管道字符 - 继续运行和运行。那么,我应该怎么做才能下载这样的依赖呢?
【问题讨论】:
-
我不确定它是否相关,但您应该输入 npm install –g cordova 而不仅仅是 npm install cordova。我知道最新版本的 node/npm 存在一些问题,但它已在 cordova 5.4 和 > 我认为已修复。我刚刚用最新版本的 node 安装了一台全新的计算机,安装 cordova 没有问题。
-
根据离子入门 - ionicframework.com/getting-started -,它需要 Node.js 4,因为“节点 5 目前不工作!”。因此,我下载了 Node.js 4.2.4
-
@ArthurRonald 也许试试
npm uninstall -g cordova,然后是npm install -g npm,然后是npm --loglevel info install -g cordova,至少看看是什么卡住了? -
指定注册表时,必须设置主机,而不是打包路径。例如
npm set registry=http://registry.npmjs.org,没有cordova部分 -
尝试清理缓存
npm cache clean和/或以管理员身份运行 CMD
标签: node.js cordova installation npm