【问题标题】:Upgrade cordova: cannot install plugins from git urls anymore升级科尔多瓦:无法再从 git url 安装插件
【发布时间】:2015-08-28 08:37:54
【问题描述】:

我进行了 cordova/phonegap 升级,现在我无法再从 git url 安装插件了。有人遇到过这样的问题并且已经解决了吗?

$ 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

编辑: 如果我将存储库移动到我的主目录(~/),它似乎可以工作。

【问题讨论】:

  • git 和 node 呢?
  • 好像无法拉取 VideoPlayer 插件
  • 你有没有尝试过其他随机的cordova插件,只是看看它是插件还是你的cordova设置
  • 对我来说,问题是我的项目位于 /home 中,与 /tmp 不同的分区是 cordova 克隆存储库的地方。我不知道为什么这对 shell.js 来说是个问题
  • @ancechu,我也一样

标签: cordova phonegap-plugins


【解决方案1】:

我在 Windows 7 上使用 Cordova 时遇到了同样的问题。我必须回滚到 5.0.0 (npm install -g cordova@5.0.0) 才能让它再次工作。

【讨论】:

【解决方案2】:

快速解决方法是在本地克隆 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 install

本地克隆 :: git clone https://github.com/phonegap/phonegap-plugin-fast-canvas.git

本地安装 cordova plugin add /path/to/phonegap-plugin-fast-canvas

工作。

【讨论】:

  • 检查你的语法,git clone cordova plugin add https://github.com/phonegap/phonegap-plugin-fast-canvas.git 不正确。
  • 谢谢@AnnevanRossum。固定
【解决方案3】:

此问题已在最新的 cordova 版本(5.2.0)中得到修复。

使用npm install -g cordova升级 Cordova

【讨论】:

    【解决方案4】:

    为了扩展此处提供的其他出色答案,

    作为一种临时解决方法,这里有一个单行,它将降级 Cordova、安装插件并重新升级 Cordova:

    npm install -g cordova@5.0.0 && cordova plugin add [plugin url] && npm install -g cordova
    

    执行需要一些时间,但消除了所有手动回购克隆工作。

    【讨论】:

    • 迄今为止最简单的方法
    【解决方案5】:

    我和你有同样的情况。并解决这个问题需要将cordova拉回5.0.0

    【讨论】:

      【解决方案6】:

      问题来自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+"'");
      

      【讨论】:

        【解决方案7】:

        sudo npm install -g cordova@5.0.0

        sudo cordova 插件添加https://github.com/litehelpers/Cordova-sqlite-storage.git

        【讨论】:

          【解决方案8】:

          Cordova 5.1.1 有一个错误,如果项目位于与您的临时文件夹不同的驱动器上,该错误可能会导致从 Git 存储库安装的插件失败并出现错误“错误:EXDEV,不允许跨设备链接”。

          您可以从 npm 添加插件。或者,如果您必须添加插件的 Git 版本,您可以下载一个副本,解压缩,然后从文件系统添加插件,方法是将其放入 config.xml 并在“spec”中指定目录路径:@ 987654321@

          【讨论】:

            【解决方案9】:

            我遇到了同样的问题,并按照 AMilassin 的建议解决了(回滚到 Cordova 版本 5.0)。我遇到的另一个问题是我的 Git 安装路径 (C:\Program Files\Git\bin) 未添加到环境变量中。一旦我解决了这两个问题,我就可以安装我需要的插件。

            【讨论】:

              【解决方案10】:

              对于任何与 cordova 7.0.1 或更高版本有相同问题的人,请通过在我的项目基础目录中包含一个 package.json 文件并确保 package.json 文件中的版本是模式 XXX 示例 1.0.0 来解决我的问题否则你会得到无效版本错误。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-07-25
                • 2016-01-24
                • 1970-01-01
                • 2015-08-13
                • 1970-01-01
                相关资源
                最近更新 更多