web-dev-qa-db-ja.com

Cordovaのアップグレード:git urlからプラグインをインストールできなくなりました

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

編集:リポジトリをホームディレクトリ(〜/)に移動すると機能するようです。

23
mwager

Windows 7のCordovaでも同じ問題が発生しました。5.0.0にロールバックして(npm install -g [email protected])、再度機能させる必要がありました。

26
AMilassin

簡単な修正は、ローカルで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

動作します。

25
Pian0_M4n

この問題は、最新のCordovaバージョン(5.2.0)で修正されています。

npm install -g cordovaを使用してCordovaをアップグレードします

4
Japheth Adhavan

ここで提供される他の素晴らしい答えを拡張するには、

一時的な回避策として、コルドバのダウングレード、プラグインのインストール、コルドバのアップグレードを行うone-linerを次に示します。

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

実行には少し時間がかかりますが、手動でのリポジトリの複製作業はすべて不要になります。

3
Ivan Bartsov

問題は、デバイス間でファイルの名前を変更できない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+"'");
1
dahook

私もあなたと同じ状況でした。この問題を解決するには、コルドバを5.0.0に戻す必要があります。

1
hexin

Sudo npm install -g [email protected]

Sudoコルドバプラグイン追加 https://github.com/litehelpers/Cordova-sqlite-storage.git

0

私は同じ問題を抱えており、AMilassin(Cordovaバージョン5.0にロールバック)のアドバイスに従って解決しました。もう1つの問題は、Gitのインストールパス(C:\ Program Files\Git\bin)が環境変数に追加されなかったことです。両方の問題を修正したら、必要なプラグインをインストールすることができました。

0
Sundar Ram

コルドババージョン7.0.1以降で同じ問題を抱えている人は、私のプロジェクトのベースディレクトリにpackage.jsonファイルを含め、package.jsonファイルのバージョンがパターンXXXの例1.0.0であることを確認してください。無効なバージョンエラーが発生します。

0
MrJaid

Cordova 5.1.1には、プロジェクトが一時フォルダーとは別のドライブにある場合、Gitリポジトリからインストールされたプラグインが「エラー:EXDEV、クロスデバイスリンクは許可されていません」というエラーで失敗する可能性があるバグがあります。

Npmからプラグインを追加できます。または、プラグインのGitバージョンを追加する必要がある場合は、代わりにコピーをダウンロードして解凍し、config.xmlに配置して「spec」でディレクトリパスを指定することにより、ファイルシステムからプラグインを追加できます。 https://cordova.Apache.org/docs/en/latest/config_ref/index.html#plugin

0
Linda Z