我做了一次cordova / phonegap升级,现在我再也无法从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
版本信息:
$ phonegap -v
5.0.0-0.28.1
$ cordova -v
5.1.1
OSX 10.10.3
编辑: 如果我将我的存储库移动到我的主目录(〜/)。
,它似乎有效答案 0 :(得分:26)
我在Windows 7上遇到了与Cordova相同的问题。我不得不回滚到5.0.0(npm install -g cordova@5.0.0)以使其再次运行。
答案 1 :(得分:25)
快速修复是在本地克隆git并从那里提供路径。要使插件开始工作,只需要查看plugin.xml文件
即可所以cordova plugin add https://github.com/phonegap/phonegap-plugin-fast-canvas.git
- 失败,因为
shell.js: internal error
Error: EXDEV, cross-device link not permitted '/
- Cordova 5.1.0+中的正常错误。适用于大多数(如果不是全部).git安装
本地克隆::
git clone https://github.com/phonegap/phonegap-plugin-fast-canvas.git
本地安装
cordova plugin add /path/to/phonegap-plugin-fast-canvas
作品。
答案 2 :(得分:4)
此问题已在最新的cordova版本(5.2.0)中修复。
使用npm install -g cordova
答案 3 :(得分:3)
要扩展此处提供的其他优秀答案,
作为一种临时解决方法,这里有一个单行,它将降级Cordova,安装插件,并升级Cordova:
npm install -g cordova@5.0.0 && cordova plugin add [plugin url] && npm install -g cordova
将需要一些时间来执行,但会消除所有手动repo克隆工作。
答案 4 :(得分:1)
我和你有同样的情况。并且解决这个问题需要将cordova拉回5.0.0
答案 5 :(得分:1)
问题来自node.js fs.rename()
,无法通过设备重命名文件。
可能的解决方法是将fs.renameSync()
替换为cordova/node_modules/cordova-lib/node_modules/shelljs/src/mv.js
例如:
var run=require('sync-runner');
...
run("mv '"+src+"' '"+thisDest+"'");
答案 6 :(得分:0)
sudo npm install -g cordova@5.0.0
sudo cordova插件添加https://github.com/litehelpers/Cordova-sqlite-storage.git
答案 7 :(得分:0)
如果项目与您的临时文件夹位于不同的驱动器上,则Cordova 5.1.1有一个错误,可能导致从Git存储库安装的插件失败并显示错误“错误:EXDEV,不允许跨设备链接”。
您可以从npm添加插件。或者,如果您必须添加插件的Git版本,您可以通过将其放入config.xml并在“spec”中指定目录路径来下载副本,解压缩并从文件系统添加插件:{ {3}}
答案 8 :(得分:0)
我遇到了同样的问题,并按照AMilassin的建议(回滚到Cordova 5.0版)解决了问题。我遇到的另一个问题是我的Git安装路径(C:\ Program Files \ Git \ bin)没有添加到环境变量中。一旦我解决了这两个问题,我就能够安装我需要的插件。
答案 9 :(得分:0)
对于与cordova版本7.0.1或更高版本存在相同问题的任何人,请通过在我的项目基目录中包含package.json文件来解决我的问题,并确保package.json文件中的版本为XXX示例1.0.0否则你会得到无效的版本错误。