J'ai fait une mise à jour de cordova/phonegap et maintenant je ne peux plus installer de plugins à partir d'URL git. Quelqu'un a-t-il rencontré un tel problème et l'a-t-il déjà résolu?
$ 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
Informations de version:
$ phonegap -v
5.0.0-0.28.1
$ cordova -v
5.1.1
OSX 10.10.3
EDIT: Il semble que cela fonctionne si je déplace mon référentiel dans mon répertoire personnel (~ /).
J'ai eu le même problème avec Cordova sous Windows 7. J'ai dû revenir à la version 5.0.0 (npm install -g [email protected]) pour que cela fonctionne à nouveau.
Une solution rapide consiste à cloner le git localement et à fournir le chemin à partir de là. Pour qu'un plug-in puisse fonctionner, il suffit de voir le fichier plugin.xml
Donc, cordova plugin add https://github.com/phonegap/phonegap-plugin-fast-canvas.git
- échoue car
Shell.js: internal error
Error: EXDEV, cross-device link not permitted '/
- erreur normale dans Cordova 5.1.0+. S'applique à la plupart sinon à tous les fichiers d'installation .git
Clone local :: git clone https://github.com/phonegap/phonegap-plugin-fast-canvas.git
Et installation locale cordova plugin add /path/to/phonegap-plugin-fast-canvas
Travaux.
Ce problème est résolu dans la dernière version de Cordova (5.2.0).
Mettez à niveau Cordova avec npm install -g cordova
Pour prolonger d'autres bonnes réponses fournies ici,
En guise de solution temporaire, voici un one-liner qui rétrogradera Cordova, installera le plug-in et remettra à niveau Cordova:
npm install -g [email protected] && cordova plugin add [plugin url] && npm install -g cordova
Cela prendra du temps à exécuter, mais éliminera tout le travail de clonage manuel.
Le problème provient de node.js fs.rename()
qui ne peut pas renommer les fichiers sur plusieurs périphériques.
Une solution de contournement possible consiste à remplacer fs.renameSync()
par quelque chose d'autre dans cordova/node_modules/cordova-lib/node_modules/shelljs/src/mv.js
Par exemple:
var run=require('sync-runner');
...
run("mv '"+src+"' '"+thisDest+"'");
J'ai eu la même situation avec vous. et résoudre ce problème besoin de tirer le cordova à 5.0.0
Sudo npm install -g [email protected]
Sudo cordova plugin add https://github.com/litehelpers/Cordova-sqlite-storage.git
J'ai eu le même problème et je l'ai résolu en suivant les conseils d'AMilassin (en revenant à Cordova Version 5.0). Un autre problème que j'ai eu était mon chemin d'installation Git (C:\Program Files\Git\bin) n'a pas été ajouté aux variables d'environnement. Une fois les deux problèmes résolus, j'ai pu installer les plugins dont j'avais besoin.
Si vous rencontrez le même problème avec cordova version 7.0.1 ou ultérieure, résolvez le mien en incluant un fichier package.json dans le répertoire de base de mon projet et en vous assurant que la version figurant dans le fichier package.json correspond au modèle exemple XXX 1.0.0 obtenir une erreur de version invalide.
Cordova 5.1.1 présente un bogue qui peut entraîner l'échec des plug-ins installés à partir d'un dépôt Git avec l'erreur "Erreur: EXDEV, lien entre périphériques non autorisé" si le projet se trouve sur un autre lecteur que votre dossier temporaire.
Vous pouvez ajouter des plugins à partir de npm. Ou, si vous devez ajouter une version Git du plug-in, vous pouvez au lieu de cela télécharger une copie, la décompresser et l'ajouter à partir du système de fichiers en le plaçant dans le fichier config.xml et en spécifiant le chemin du répertoire dans "spec": https://cordova.Apache.org/docs/fr/latest/config_ref/index.html#plugin