web-dev-qa-db-fra.com

cordova-plugin-crypt-file - erreur requireCordovaModule

Je viens de mettre à jour Cordova vers la version 9. Il a enfermé le plugin cordova-plugin-crypt-file pour cesser de fonctionner - lorsque je crée l'application, j'obtiens une erreur

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.

Il semble que le problème soit lié au fichier hooks/after_prepare.js. Le code est

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; 

J'ai donc changé tout context.requireCordovaModule en simple require. Il produit un nouveau message d'erreur:

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

S'il vous plaît, quelqu'un pourrait-il m'aider à résoudre ce problème? Ou existe-t-il un plugin alternatif?

7
user3523426

Ce correctif fonctionne pour moi sur Cordova 9.0, cordova-ios:

Dans le fichier:

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

, remplacez:

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; 

avec:

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;

Supprimez ensuite le dossier de plate-forme "ios" généré et ajoutez à nouveau la plate-forme "ios".

1
MrDEV