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?
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".