Cordova のエラー。requireCordovaModule" を使って非コードバモジュール "q" を読み込むことはサポートされていません。
質問
CI上のビルドが以下のエラーのために失敗するようになったことに気づきました。
Discovered plugin "cordova-plugin-app-version" in config.xml. Adding it to the project
Installing "cordova-plugin-app-version" for android
Adding cordova-plugin-app-version to package.json
Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
[ERROR] Exception:
The command '/bin/sh -c ionic cordova platforms add android' returned a non-zero code: 1
iOSとAndroidの両方で同じ問題が発生します。
いろいろ調べた結果 cordova 9.0.0 が最近リリースされたことがわかりました。
この問題に関連するいくつかの変更があります。
- GH-710 Q 依存性を排除し、ネイティブなプロミスを使用する
- GH-707 非 Cordova モジュール用の requireCordovaModule の廃止
最初に思ったのは、どういうわけかコードバのバージョンをロックしていなかったということでしたが、ロックしていたのは
[email protected]
にロックしています。また、ローカルマシンでテストしてみたところ、cordova のバージョンが
8.1.2
にも対応しています。ですから、これが問題であるはずがありません。
もう少しログを見てみると、以下のようなログがあることに気づきました。
cordova-android version check failed ("/app/platforms/android/cordova/version"), continuing anyways.
それが3、4回ほどありましたが、その際もビルドは止まりませんでした。
その後、古いコミットのビルドを再度実行したところ、おそらくいくつかのレイヤーがキャッシュされたため、うまく動作しました。しかし、1 つのパッケージだけを変更した場合 (試しに prettier を更新しました)、ほとんどのレイヤーを再構築することになり、上記のエラーでビルドがクラッシュしました。
どうやら、より深いところにあるいくつかの依存関係が更新されたようで、それがこの問題を引き起こしているようです。
ご協力ありがとうございました。
どのように解決するのですか?
私もこれに遭遇しました。私の場合、問題のあるプラグインを削除する必要がありました。
cordova-plugin-camera-preview
をリストする
"cordova": "*"
を依存関係としてリストアップしています。この場合、cordova 9.0.0 をインストールする際に
ionic cordova build
関連
-
[解決済み】エラー。Android SDK 内で gradle ラッパーが見つかりませんでした。Android SDKをアップデートする必要があるかもしれません。
-
[解決済み】Cordova - 現在の作業ディレクトリはCordovaベースのプロジェクトではありません。
-
[解決済み] 新しいプロジェクトでcordova.jsが見つからない
-
[解決済み] DeprecationWarningです。Tapable.pluginは非推奨です。代わりに `.hooks` の新しい API を使用してください。
-
[解決済み] ionic 2 でアイコンやボタンを大きくする方法
-
[解決済み] ionic 2 - エラー Android Studio でインストールされたバージョンの Gradle も見つかりませんでした。
-
[解決済み] 携帯電話のギャップにおけるローカルストレージの使用
-
[解決済み] Cordova 5.0.0: どのファイルを git にコミットするべきですか?
-
AndroidとiOSのローカルストレージはどのくらい永続的なのですか?
-
NPM でパッケージの以前のバージョンを取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。Android SDK 内で gradle ラッパーが見つかりませんでした。Android SDKをアップデートする必要があるかもしれません。
-
[解決済み】Cordova - 現在の作業ディレクトリはCordovaベースのプロジェクトではありません。
-
[解決済み] DeprecationWarningです。Tapable.pluginは非推奨です。代わりに `.hooks` の新しい API を使用してください。
-
[解決済み] ionic 2 でアイコンやボタンを大きくする方法
-
[解決済み] ionic 2 - エラー Android Studio でインストールされたバージョンの Gradle も見つかりませんでした。
-
[解決済み] 携帯電話のギャップにおけるローカルストレージの使用
-
[解決済み] Cordova 5.0.0: どのファイルを git にコミットするべきですか?
-
[解決済み] phonegapアプリケーションで "No Content-Security-Policy meta tag found. "というエラーが発生しました。
-
AndroidとiOSのローカルストレージはどのくらい永続的なのですか?
-
NPM でパッケージの以前のバージョンを取得する