2016-01-26 5 views
10

Я использую Ionic framework для создания гибридных приложений. Согласно официальному сайту, мне нужно получить версию 4.2.4 от Node.js, в которую входит менеджер пакетов npm. Одна из зависимостей, необходимых Ионные является Cordova, так что я запустить следующую команду, чтобы получить егоnpm install не работает при запуске npm install 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 [email protected] 
npm info using [email protected] 
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 [email protected] 
npm info using [email protected] 
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 

Как вы можете видеть из журнала, НПМ запуска версии 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' ] 

На этот раз, он больше ничего не жалуются. Вместо этого индикатор загрузки - символ трубы - продолжает работать и работает. Итак, что мне делать, чтобы загрузить такую ​​зависимость?

+2

Я не уверен, что это необходимо, но вы должны ввести НПЙ установить -g Кордовы не только НПМИ установки Кордовы. Я знаю, что была некоторая проблема с последними версиями узла/npm, но она была исправлена ​​с помощью cordova 5.4 и> я думаю. Я только что установил новый новый компьютер с последней версией узла и не имел проблем с установкой кордовы. – QuickFix

+0

В соответствии с ионным запуском - http://ionicframework.com/getting-started/ - для этого требуется Node.js 4, потому что «Узел 5 не работает в данный момент!». Из-за этого я загрузил Node.js 4.2.4 –

+0

@ArthurRonald Может быть, попробуйте «npm uninstall -g cordova», затем «npm install -g npm», затем «npm --llusvel info install -g cordova» и в по крайней мере, увидеть, что застревает? – heenenee

ответ

2

Мы, похоже, рассматриваем две различные проблемы.

Ошибка сертификата, вероятно, связана с исходящим SSL-прокси. Кто-то, скорее всего, ваш работодатель, вскрывает весь трафик SSL на выходе. Чтобы исправить это, вам нужно сообщить NPM, что этот сертификат в порядке, импортируя сертификат CA используемого прокси.

npm config set cafile = "/the/certificate/file.pem" 

Вам также может понадобиться установить адрес прокси-сервера для НПМ, а также:

npm config set proxy http://proxy.example.com:3128 
npm config set https-proxy http://proxy.example.com:3128 

Несовместимость с узлом 5.0, кажется, были исправлены в соответствии с моим исследованиям. Документация просто устарела.

Ошибка в Кордове, которая, возможно, была проблемой, была missing method in the Q promises library, от которой зависит Кордова.

В ноябре 2015 года пользователь смог use Ionic successfully with node 5.1.0.

+0

Дополнительные настройки можно найти здесь: https://gist.github.com/erkobridee/4061363 (португальский) –

0

Хорошо, я думаю, что примечание о узле 4 против узла 5 от старых дней Cordova 5.0, когда возникла проблема при установке Кордовы с узлом 5.

С тех пор они выпустили Cordova 5.4 и 6, где Cordova больше нет проблемы с узлом 5.

Обычно я не использую ионную, но, конечно, с моей новой установкой узла v5.4.1, где я уже работал с cordova 5.4 (также установлен с узлом 5.4. 1), I:

  • установлен кордова 6: npm install -g cordova
  • установлен ионный 1.7.13: npm install -g ionic
  • создал ионную приложение: ionic start myApp tabs
  • запустить приложение на андроид устройства

cd myApp cordova platform add android ionic run android

И все работало отлично.

Поэтому я предполагаю, что вы можете безопасно установить последнюю версию узла для создания приложений с ионной. И, может быть, узел 5.4.1 решит проблему, с которой вы столкнулись с узлом 4.2.4?

0

Проблема здесь, что вы используете самозаверяющий сертификат в соответствии с ошибкой self signed certificate in certificate chain.

Если вы хотите, чтобы исправить ошибки здесь некоторая информация для вас:

Но если нет никакого способа, чтобы справиться с проблемой просто установить HTTP реестра (перенос около config слово)

npm config set registry http://registry.npmjs.org/ 
-1

Подобное случилось со мной раньше, и то, что работало для меня тогда, было.

Сначала удалите узел и npm. Во-вторых, удалите папки npm и npm-cache на C: \ Users \ yourname \ AppData \ Roaming. И, наконец, перезагрузить и переустановить новую копию node.js.

Я не уверен, что это будет работать на ваше дело, но надеюсь, что это поможет!

2

Даже я столкнулся с таким же вопросом, делая любую npm install -g XXX команды, она была решена npm config set strict-ssl false

Смежные вопросы