2016-01-26 17 views
10

Ich benutze Ionic Framework, um Hybrid-Apps zu erstellen. Laut der offiziellen Website muss ich die Version 4.2.4 von Node.js, die den npm-Paketmanager enthält, bekommen. Einer der von Ionic benötigten Abhängigkeiten ist cordova, so dass ich den folgenden Befehl ausführen es Nachdem dannnpm install funktioniert nicht, wenn npm ausgeführt wird cordova installieren

C:\Users\ferrero>npm install -g cordova 

zu bekommen, die Konsolenprotokolle

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 

Wie Sie log, npm Lauf Version sehen 2.14 .12 und es beschwert sich, dass die Ursache ein selbst unterzeichnetes Zertifikat ist - wahrscheinlich ausgestellt von https://registry.npmjs.org/cordova. Also, dieses Problem zu überwinden, ich laufe

npm config set registry=http://registry.npmjs.org 

und danach (nur den relevanten Teil)

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' ] 

Dieses Mal ist es nicht etwas anderes beschweren. Stattdessen läuft der Ladeanzeiger - ein Pipe-Zeichen - weiter und läuft. Also, was soll ich tun, um eine solche Abhängigkeit herunterzuladen?

+2

aufgelöst ich bin nicht sicher, es ist relevant, aber Sie sollten npm installieren -g cordova nicht nur npm installieren cordova geben. Ich weiß, dass es ein Problem mit den neuesten Versionen von node/npm gab, aber es wurde mit cordova 5.4 behoben und> ich denke. Ich habe gerade einen frischen neuen Computer mit der neuesten Version von Knoten installiert und hatte kein Problem, Cordova zu installieren. – QuickFix

+0

Gemäß dem ionischen Einstieg - http://ionicframework.com/getting-started/ - benötigt Node.js 4, weil "Knoten 5 im Moment nicht funktioniert!". Aus diesem Grund habe ich Node.js 4.2.4 –

+0

@ArthurRonald heruntergeladen Vielleicht versuchen Sie 'npm deinstallieren -g cordova', dann' npm installieren -g npm', dann 'npm --loglevel info installieren -g cordova' und an zumindest sehen, was stecken bleibt? – heenenee

Antwort

2

Wir scheinen hier zwei verschiedene Probleme zu betrachten.

Der Zertifikatfehler ist wahrscheinlich auf einen ausgehenden SSL-Proxy zurückzuführen. Jemand, höchstwahrscheinlich Ihr Arbeitgeber, öffnet den gesamten SSL-Verkehr auf dem Weg nach draußen. Um es zu beheben, müssen Sie NPM mitteilen, dass dieses Zertifikat in Ordnung ist, indem Sie das CA-Zertifikat des verwendeten Proxy importieren.

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

Sie können auch als auch die Proxy-Adresse für npm festlegen müssen:

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

Die Inkompatibilität mit Knoten 5,0 scheint behoben wurden meine Forschung nach. Die Dokumentation scheint einfach nicht mehr aktuell zu sein.

Der Fehler in Cordova, der das Problem sein konnte, war ein missing method in the Q promises library, von dem Cordova abhängt.

Im November 2015 konnte ein Benutzer use Ionic successfully with node 5.1.0.

+0

Weitere Einstellungen können gefunden werden hier: https://gist.github.com/erkobridee/4061363 (portugiesisch) –

0

Ok, ich denke, die Notiz über den Knoten 4 vs Knoten 5 aus den alten Tagen von cordova 5.0 ist, wenn es ein Problem gab, wenn cordova mit Knoten Installation 5.

Seitdem sie cordova 5.4 und cordova 6 freigegeben, wo Es gibt kein Problem mehr mit Knoten 5.

Normalerweise verwende ich keine ionischen, aber um sicher zu sein, mit meiner neuen Installation von Knoten v5.4.1, wo ich bereits cordova 5.4 (installiert auch mit Knoten 5.4. 1), I:

  • installiert Cordova 6: npm install -g cordova
  • installiert ionische 1.7.13: npm install -g ionic
  • eine ionische App erstellt: ionic start myApp tabs
  • laufen die App auf einem Android-Gerät

cd myApp cordova platform add android ionic run android

Und alles perfekt funktionierte.

Also ich nehme an, dass Sie sicher versuchen können, die neueste Version von Knoten zu installieren, um Anwendungen mit ionischen zu bauen. Und vielleicht löst Knoten 5.4.1 das Problem mit Knoten 4.2.4?

0

Problem hier, dass Sie selbstsigniertes Zertifikat nach Fehler self signed certificate in certificate chain verwenden.

Wenn Sie den Fehler hier einige Informationen für Sie korrigieren möchten:

Aber wenn es keine Möglichkeit, mit Problem nur gesetzt http-Registrierung umgehen ist (carry über config wort)

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

Eine ähnliche Sache passierte mir vorher und was für mich damals funktionierte war.

Zuerst deinstallieren Sie Knoten und NPM. Zweitens, löschen Sie die Ordner npm und npm-cache unter C: \ Benutzer \ Benutzername \ AppData \ Roaming. Und zuletzt, eine neue Kopie von node.js erneut herunterladen und neu installieren.

Ich bin mir nicht sicher, ob das bei deinem Fall funktionieren wird, aber hoffe, das hilft !!

2

Auch gleiches Problem i konfrontiert, während jeden npm install -g XXX Befehl tut, wurde es von npm config set strict-ssl false