7
votes

cordova-plugin-crypt-file - erreur requireCordovaModule

Je viens de mettre à niveau Cordova vers la version 9. Il a mis le plugin cordova-plugin-crypt-file pour arrêter de fonctionner - quand je construis l'application, j'obtiens l'erreur

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

Cela ressemble au problème est avec le 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é tous les context.requireCordovaModule en simplement require. Il produit un nouveau message d'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.

S'il vous plaît, quelqu'un pourrait-il m'aider à corriger? Ou existe-t-il un autre plugin?


1 commentaires

Sry, pas encore. Je dois d'abord terminer le projet. Je ne veux pas risquer mes délais en expérimentant le code.


3 Réponses :


5
votes

J'ai eu le même problème. Vous devez rétrograder cordova vers la version 8.1.2

npm uninstall -g cordova
npm cache clean --force
npm i -g cordova@8.1.2


1 commentaires

Oui, c'était aussi ma solution, mais une fois que nous devons mettre à niveau Cordova et que le plugin n'est pas maintenu, nous devons le réparer nous-mêmes.



5
votes

Veuillez utiliser le plugin suivant:

https://github.com/PeterHdd / cordova-plugin-crypto-file

Il est basé sur le cordova-plugin-crypt-file.

Le plugin ci-dessus était conçu pour fonctionner avec cordova-plugin-ionic-webview , j'ai mis à jour le plugin et maintenant il fonctionne avec cordova 9, il n'est donc pas nécessaire de rétrograder.

Pour l'installer procédez comme suit:

npm i cordova-plugin-crypto-file@latest

la dernière version 1.4.0 corrige le problème de cordova 9.


6 commentaires

Cela fonctionne depuis un moment. N'obtenez-vous pas que le fichier est chiffré avant la fin de la construction? Les fichiers sont chiffrés avant la construction et déchiffrés lors de l'exécution.


Je viens de le tester à nouveau imgur.com/a/71SFcEe , il fonctionne normalement. Veuillez me dire ce que vous essayez de faire si vous rencontrez un problème. @ MD.Riyaz


@ MD.Riyaz quel était le problème?


@Peter_Haddad Ouais.


@ MD.Riyaz oui, mais qu'est-ce que c'était?


Je ne sais pas, mais le plugin supprime puis réinstalle son bon fonctionnement.



1
votes

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              = 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;

par:

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; 

Puis supprimez la plate-forme "ios" générée dossier et ajoutez à nouveau la plate-forme "ios".


0 commentaires