web-dev-qa-db-ja.com

Cordova-plugin-crypt-file-requireCordovaModuleエラー

Cordovaをバージョン9にアップグレードするだけです。プラグインcordova-plugin-crypt-fileが機能しなくなる-アプリケーションをビルドすると、エラーが発生します。

Using "requireCordovaModule" to load non-cordova module "path" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.

問題は、ファイルフック/after_prepare.jsにあるようです。コードは

var path              = context.requireCordovaModule('path'),
        fs                = context.requireCordovaModule('fs'),
        crypto            = context.requireCordovaModule('crypto'),
        Q                 = context.requireCordovaModule('q'),
        cordova_util      = context.requireCordovaModule('cordova-lib/src/cordova/util'),
        platforms         = context.requireCordovaModule('cordova-lib/src/platforms/platforms'),
        Parser            = context.requireCordovaModule('cordova-lib/src/cordova/metadata/parser'),
        ParserHelper      = context.requireCordovaModule('cordova-lib/src/cordova/metadata/parserhelper/ParserHelper'),
        ConfigParser      = context.requireCordovaModule('cordova-common').ConfigParser; 

そこで、すべてのcontext.requireCordovaModuleを単純なrequireに変更しました。新しいエラーメッセージが表示されます。

Cannot find module 'cordova-lib/src/cordova/util'

どうか、誰かが修正を手伝ってくれる?または、代替プラグインはありますか?

7
user3523426

この修正は、Cordova 9.0、cordova-iosで動作します。

ファイル:

cordova-plugin-crypt-file/hooks/after_prepare.js

、置き換えます:

var path              = context.requireCordovaModule('path'),
    fs                = context.requireCordovaModule('fs'),
    crypto            = context.requireCordovaModule('crypto'),
    Q                 = context.requireCordovaModule('q'),
    cordova_util      = context.requireCordovaModule('cordova-lib/src/cordova/util'),
    platforms         = context.requireCordovaModule('cordova-lib/src/platforms/platforms'),
    Parser            = context.requireCordovaModule('cordova-lib/src/cordova/metadata/parser'),
    ParserHelper      = context.requireCordovaModule('cordova-lib/src/cordova/metadata/parserhelper/ParserHelper'),
    ConfigParser      = context.requireCordovaModule('cordova-common').ConfigParser; 

と:

var path              = require('path'),
    fs                = require('fs'),
    crypto            = require('crypto'),
    Q                 = require('q'),
    cordova_util      = context.requireCordovaModule('cordova-lib/src/cordova/util'),
    platforms         = context.requireCordovaModule('cordova-lib/src/platforms/platforms'),
    ConfigParser      = context.requireCordovaModule('cordova-common').ConfigParser;

次に、生成された「ios」プラットフォームフォルダーを削除し、「ios」プラットフォームを再度追加します。

1
MrDEV