2015-06-12 10 views
23

Ho fatto un aggiornamento Cordova/PhoneGap e ora non riesco più a installare i plugin da git urls. Qualcuno ha riscontrato un problema simile e ha già risolto questo problema?Aggiornamento cordova: non è più possibile installare plugin da git urls

$ 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 

Informazioni Versione:

$ phonegap -v 
5.0.0-0.28.1 

$ cordova -v 
5.1.1 

OSX 10.10.3

EDIT: Sembra che funziona se sposto il mio repository alla mia home directory (~ /).

+0

che dire di git e nodo? –

+0

sembra non essere in grado di estrarre il plug-in VideoPlayer –

+0

Hai provato con altri plugin cordova casuali, solo per vedere se è il plug-in o la tua configurazione cordova –

risposta

26

Ho avuto lo stesso problema con Cordova su Windows 7. Ho dovuto tornare alla 5.0.0 (npm install -g [email protected]) per farlo funzionare di nuovo.

+1

Questo l'ha risolto, ho archiviato un bug di cordova https://issues.apache.org/jira/browse/CB-9212 – Michael

1

Ho avuto la stessa situazione con voi. e reseve questo problema è necessario tirare indietro la cordova a 5.0.0

25

Una soluzione rapida è quella di clonare il git localmente e fornire il percorso da lì. Per un plug-in per iniziare a lavorare, tutto ciò che serve è quello di vedere il file plugin.xml

Così cordova plugin add https://github.com/phonegap/phonegap-plugin-fast-canvas.git - non riesce a causa

shell.js: internal error Error: EXDEV, cross-device link not permitted '/ - errore normale a Cordova 5.1.0+. Vale per la maggior parte se non tutti .git installare

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

e locali installare cordova plugin add /path/to/phonegap-plugin-fast-canvas

Works.

+0

Controlla la tua sintassi, 'git clone cordova plugin aggiungi https://github.com/ phonegap/phonegap-plugin-fast-canvas.git' non è corretto. –

+1

Grazie @AnnevanRossum. Risolto –

+0

Amazing @ Pian0_M4n ha funzionato perfettamente, Grazie – Carlos487

2

Per estendere altri grandi risposte fornite qui,

Come soluzione temporanea, ecco una one-liner che downgrade Cordova, installare plug-in, e l'aggiornamento Cordova indietro:

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

Avrà un po 'di tempo per eseguire, ma elimina tutto il lavoro di clonazione manuale.

+0

di gran lunga il modo più semplice per farlo –

1

Il problema deriva dal node.js fs.rename(), che è in grado di rinominare i file attraversare dispositivi.

Una possibile soluzione è quella di sostituire fs.renameSync() con qualcos'altro in cordova/node_modules/cordova-lib/node_modules/shelljs/src/mv.js

Esempio:

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

Questo problema è stato risolto nella versione più recente Cordova (5.2.0).

Amplia Cordova utilizzando npm install -g cordova

0

Cordova 5.1.1 ha un bug che può causare il fallimento dei plug-in installati da un repository Git con l'errore "Errore: EXDEV, collegamento cross-device non consentito" se il progetto si trova su un'unità diversa dalla cartella temporanea.

È possibile aggiungere plug-in da npm. Oppure, se devi aggiungere una versione Git del plugin, puoi invece scaricare una copia, decomprimerla e aggiungere il plugin dal file system inserendolo nel file config.xml e specificando il percorso della directory in "spec": https://cordova.apache.org/docs/en/latest/config_ref/index.html#plugin

0

Ho avuto lo stesso problema e ho risolto il problema seguendo il consiglio di AMilassin (ripristino di Cordova versione 5.0). Un altro problema che avevo era il mio percorso di installazione Git (C: \ Programmi \ Git \ bin) non è stato aggiunto alle variabili di ambiente. Una volta risolti entrambi i problemi, sono stato in grado di installare i plug-in necessari.

0

Per chiunque abbia lo stesso problema con Cordova versione 7.0.1 o successiva, risolvere il mio includendo un file package.json nella directory base del progetto e verificando che la versione nel file package.json sia del modello XXX esempio 1.0. Altrimenti riceverai un errore di versione non valido.

Problemi correlati