apla / me.apla.cordova.app-preferences

App preferences plugin for cordova
Apache License 2.0
201 stars 210 forks source link

Can no longer install #113

Open craig-at-rsg opened 7 years ago

craig-at-rsg commented 7 years ago

Issue: With version 0.7.6 and up plugman installation fails.

This works: plugman install --platform android --project ./platforms/android --plugin https://github.com/apla/me.apla.cordova.app-preferences#version/0.6.3 --plugins_dir plugins

This doesn't work: plugman install --platform android --project ./platforms/android --plugin https://github.com/apla/me.apla.cordova.app-preferences#version/0.7.7 --plugins_dir plugins

The failure message is: Cannot find module 'cordova'

Here's the stack trace:

Failed to install 'cordova-plugin-app-preferences':Error: Cannot find module 'cordova'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Context.requireCordovaModule (/Users/craig/.node/lib/node_modules/plugman/node_modules/cordova-lib/src/hooks/Context.js:77:12)
    at module.exports (/Users/craig/code/mobile-survey/ms-client-3_0/plugins/cordova-plugin-app-preferences/bin/lib/android.js:11:13)
    at module.exports (/Users/craig/code/mobile-survey/ms-client-3_0/plugins/cordova-plugin-app-preferences/bin/after_plugin_install.js:9:37)
    at runScriptViaModuleLoader (/Users/craig/.node/lib/node_modules/plugman/node_modules/cordova-lib/src/hooks/HooksRunner.js:187:18)
    at runScript (/Users/craig/.node/lib/node_modules/plugman/node_modules/cordova-lib/src/hooks/HooksRunner.js:165:16)
    at /Users/craig/.node/lib/node_modules/plugman/node_modules/cordova-lib/src/hooks/HooksRunner.js:133:20
Cannot find module 'cordova'

Please specify your environment

Plugin version:

Toolchain:

Platforms affected:

What the scope of your problem:

pixelgroup-israel commented 7 years ago

I have a solution for you:

1) Download me.apla.cordova.app-preferences plugin locally.

2) Extract it.

3) Open /bin/after_prepare.js and /bin/lib/android.js files.

4) Modify the content as it follows: // cordova = req('cordova'), // cordova_lib = cordova.cordova_lib, cordova_lib = req('cordova-lib'),

5) Save the files and create a new zip file of the plugin.

And thanks to Andi from Monaca for figuring this out.

craig-at-rsg commented 7 years ago

Any way the change digicomisrael outlined can become part of this project?

andipavllo commented 7 years ago

Thank you @digicomisrael but actually the credit goes to @knight9999 :) I will create a pull request for this fix.