I am using Ionic framework to build hybrid apps. According to the official website, i need to get the version 4.2.4 of Node.js, which includes npm package manager. One of the dependencies needed by Ionic is cordova so that i run the following command to get it
C:\Users\ferrero>npm install -g cordova
After then, the console logs
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
As you can see from log, npm run version 2.14.12 and it complains that the cause is a self signed certificate - likely issued by https://registry.npmjs.org/cordova. So, to overcome this issue, I run
npm config set registry=http://registry.npmjs.org
And, after that (just the relevant part)
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' ]
This time, it does not complain anything else. Instead, the loading indicator - a pipe character - keep running and running. So, what should i do in order to download such dependency ?