cordova-plugin-crypt-file - requireCordovaModule error

佐手、 提交于 2019-12-22 04:38:08

问题


I just upgrade Cordova to version 9. It cased plugin cordova-plugin-crypt-file to stop working - when I build the application, I get error

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.

It looks like the issue is with file hooks/after_prepare.js. The code is

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; 

So I changed all context.requireCordovaModule to simple require. It produces new error message:

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

Please, could anybody help me with fix? Or, is there any alternative plugin?


回答1:


Please use the following plugin:

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

It is based on the cordova-plugin-crypt-file.

The above plugin was made to work with cordova-plugin-ionic-webview, I have updated the plugin and now it works with cordova 9, so there is no need to downgrade.

To install it do the following:

npm i cordova-plugin-crypto-file@latest

latest version 1.4.0 fixes the cordova 9 issue.




回答2:


I had the same problem. You need to downgrade cordova to the version 8.1.2

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



回答3:


This fix works for me on Cordova 9.0, cordova-ios:

In file:

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

, replace:

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; 

with:

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;

Then remove the platform and re-add it again.



来源:https://stackoverflow.com/questions/55326722/cordova-plugin-crypt-file-requirecordovamodule-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!