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
編集:リポジトリをホームディレクトリ(〜/)に移動すると機能するようです。
Windows 7のCordovaでも同じ問題が発生しました。5.0.0にロールバックして(npm install -g [email protected])、再度機能させる必要がありました。
簡単な修正は、ローカルで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
動作します。
この問題は、最新のCordovaバージョン(5.2.0)で修正されています。
npm install -g cordova
を使用してCordovaをアップグレードします
ここで提供される他の素晴らしい答えを拡張するには、
一時的な回避策として、コルドバのダウングレード、プラグインのインストール、コルドバのアップグレードを行うone-linerを次に示します。
npm install -g [email protected] && cordova plugin add [plugin url] && npm install -g cordova
実行には少し時間がかかりますが、手動でのリポジトリの複製作業はすべて不要になります。
問題は、デバイス間でファイルの名前を変更できない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+"'");
私もあなたと同じ状況でした。この問題を解決するには、コルドバを5.0.0に戻す必要があります。
Sudo npm install -g [email protected]
Sudoコルドバプラグイン追加 https://github.com/litehelpers/Cordova-sqlite-storage.git
私は同じ問題を抱えており、AMilassin(Cordovaバージョン5.0にロールバック)のアドバイスに従って解決しました。もう1つの問題は、Gitのインストールパス(C:\ Program Files\Git\bin)が環境変数に追加されなかったことです。両方の問題を修正したら、必要なプラグインをインストールすることができました。
コルドババージョン7.0.1以降で同じ問題を抱えている人は、私のプロジェクトのベースディレクトリにpackage.jsonファイルを含め、package.jsonファイルのバージョンがパターンXXXの例1.0.0であることを確認してください。無効なバージョンエラーが発生します。
Cordova 5.1.1には、プロジェクトが一時フォルダーとは別のドライブにある場合、Gitリポジトリからインストールされたプラグインが「エラー:EXDEV、クロスデバイスリンクは許可されていません」というエラーで失敗する可能性があるバグがあります。
Npmからプラグインを追加できます。または、プラグインのGitバージョンを追加する必要がある場合は、代わりにコピーをダウンロードして解凍し、config.xmlに配置して「spec」でディレクトリパスを指定することにより、ファイルシステムからプラグインを追加できます。 https://cordova.Apache.org/docs/en/latest/config_ref/index.html#plugin