2015-06-12 5 views
23

Ich habe ein cordova/phonegap Upgrade durchgeführt und kann nun keine Plugins mehr von git urls installieren. Wer hat schon so ein Problem erlebt und schon gelöst?Upgrade cordova: Plugins können nicht mehr von git urls installiert werden

$ cordova plugin add https://github.com/dawsonloudon/VideoPlayer.git 
Fetching plugin "https://github.com/dawsonloudon/VideoPlayer.git" via git clone 
Repository "https://github.com/dawsonloudon/VideoPlayer.git" checked out to git ref "master". 
shell.js: internal error 
Error: EXDEV, cross-device link not permitted '/var/folders/xl/bkl76rm570gfsmjspfjgh45h0000gn/T/git/1434106220728/LICENSE' 
    at Object.fs.renameSync (fs.js:554:18) 
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/src/mv.js:77:8 
    at Array.forEach (native) 
    at Object._mv (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/src/mv.js:53:11) 
    at Object.mv (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/src/common.js:186:23) 
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/util/plugins.js:53:19 
    at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:787:54) 
    at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:816:30) 
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:749:13) 
    at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:557:44 

Version Info:

$ phonegap -v 
5.0.0-0.28.1 

$ cordova -v 
5.1.1 

OSX 10.10.3

EDIT: Es scheint, dass es funktioniert, wenn ich mein Repository zu meinem Home-Verzeichnis (~ /) bewegen.

+0

Was ist mit Git und Knoten? –

+0

sieht aus wie nicht in der Lage Videoplayer-Plugin –

+0

Haben Sie versucht, mit anderem zufälligen cordova Plugins zu ziehen, nur um zu sehen, ob es das Plugin oder Ihre cordova Setup –

Antwort

26

Ich hatte das gleiche Problem mit Cordova auf Windows 7. Ich musste auf 5.0.0 (npm installieren -g [email protected]) zurückrollen, damit es wieder funktioniert.

+1

Das hat es für mich behoben, ich habe einen Cordova-Bug eingereicht https://issues.apache.org/jira/browse/CB-9212 – Michael

1

Ich hatte die gleiche Situation mit dir. und resvole dieses Problem muss die cordova auf 5.0.0

25

zurückziehen Eine schnelle Lösung ist, den Git lokal zu klonen und den Pfad von dort bereitzustellen. Für ein Plug-in zu arbeiten zu beginnen, alle braucht es ist, die Datei plugin.xml

So cordova plugin add https://github.com/phonegap/phonegap-plugin-fast-canvas.git zu sehen - nicht, weil

shell.js: internal error Error: EXDEV, cross-device link not permitted '/ - normale Fehler in Cordova 5.1.0+. Gilt für die meisten, wenn nicht alle

Lokale Klon :: git clone https://github.com/phonegap/phonegap-plugin-fast-canvas.git

Und lokale Installation cordova plugin add /path/to/phonegap-plugin-fast-canvas

Works installieren .git.

+0

Überprüfen Sie Ihre Syntax, 'Git Clone Cordova Plugin hinzufügen https://github.com/ phonegap/phonegap-plugin-fast-canvas.git' ist falsch. –

+1

Danke @AnnevanRossum. Fixed –

+0

Amazing @ Pian0_M4n es hat total funktioniert, Danke – Carlos487

2

anderen Antworten zu erweitern hier zur Verfügung gestellt,

als eine vorübergehende Lösung, hier ist ein Einzeiler, die Cordova Herabstufung wird, installieren Plugin, und Cordova Upgrade zurück:

npm install -g [email protected] && cordova plugin add [plugin url] && npm install -g cordova 

nehmen etwas Zeit für die Ausführung, aber die manuelle Repo-Klonierung entfällt.

+0

bei weitem der einfachste Weg, es zu tun –

1

Das Problem kommt von node.js fs.rename() hinzufügen installieren, die Dateien überqueren Geräte umbenennen nicht in der Lage ist.

Eine mögliche Abhilfe ist fs.renameSync() mit anderen in cordova/node_modules/cordova-lib/node_modules/shelljs/src/mv.js

Eg etwas zu ersetzen:

var run=require('sync-runner'); 
... 
run("mv '"+src+"' '"+thisDest+"'"); 
4

Dieses Problem behoben ist in der neuesten Version cordova (5.2.0).

Cordova Upgrade-npm install -g cordova

0

Cordova 5.1 verwenden.1 weist einen Fehler auf, der dazu führen kann, dass Plugins, die von einem Git Repo installiert wurden, mit dem Fehler "Fehler: EXDEV, geräteübergreifende Verknüpfung nicht zulässig" fehlschlagen, wenn sich das Projekt auf einem anderen Laufwerk als Ihr temporärer Ordner befindet.

Sie können Plugins von npm hinzufügen. Oder, wenn Sie eine Git-Version des Plugins hinzufügen müssen, können Sie stattdessen eine Kopie herunterladen, entpacken und das Plugin aus dem Dateisystem hinzufügen, indem Sie es in die Datei config.xml einfügen und den Verzeichnispfad unter "spec" angeben: https://cordova.apache.org/docs/en/latest/config_ref/index.html#plugin

0

ich hatte das gleiche Problem und hat es durch Anschluss an die Beratung von AMilassin (Rollback nach Cordova Version 5.0) aufgelöst. Ein anderes Problem, das ich hatte, war, dass mein Git-Installationspfad (C: \ Programme \ Git \ bin) den Umgebungsvariablen nicht hinzugefügt wurde. Nachdem ich beide Probleme behoben hatte, konnte ich die benötigten Plugins installieren.

0

Für alle, die dasselbe Problem mit cordova Version 7.0.1 oder höher haben, lösen Sie meine, indem Sie eine package.json Datei in mein Projektbasisverzeichnis einfügen und sicherstellen, dass die Version in der package.json Datei vom Muster XXX Beispiel 1.0 ist. Sonst würden Sie einen ungültigen Versionsfehler erhalten.

Verwandte Themen