To use third-party plugins you do need to be on a paid plan; however, this is included on all the paid plans, so you could use your plugins with Pro plan (22 USD / month) if you want.
Pro plan supports 10 projects per account, and Business and Enterprise support 100 projects per developer (Business and Enterprise are intended for teams of developers). Enterprise is 11,000 USD per year - you may be fine with Business or Pro plan though.
It sounds like it’s not going to work having a separate project of the same app for each of your clients. One option would be to create a single project for your app and configure your VCS to use Monaca. Then you could have a separate production branch for each client and apply your changes to that branch when you want to create a release. This should be possible for any of the configuration that is done through your project files (for example, the icons are configured in config.xml). The provisioning info might be more tricky though - you may have to change that manually.
You may also be interested in looking at Monaca CLI, Monaca’s command line program, or Monaca Lib (the library used to create Monaca CLI) for automating your process through the command line. Please note that not all features are available in Monaca CLI.
I’d suggest trying out your free trial of Monaca to see if you can get it working for your purposes. If you are having specific issues using Monaca you can also contact Monaca Support Team through the Help menu in Monaca Cloud IDE.
i have the same issue
globalErrorHandler.service.ts:40 Error: Uncaught (in promise): TypeError: expression.split is not a function
TypeError: expression.split is not a function
at Object._parseExpression (onsenui.js:994)
at Object.evaluate (onsenui.js:1012)
at Object.push../node_modules/onsenui/js/onsenui.js.internal$1.getPageHTMLAsync (onsenui.js:1195)
at PageLoader.loadPage [as _loader] (onsenui.js:6809)
at PageLoader.load (onsenui.js:6857)
at new ZoneAwarePromise (zone.js:913)
at HTMLElement._pushPage (onsenui.js:22378)
at HTMLElement.pushPage (onsenui.js:22344)
at resolvePromise (zone.js:832)
at resolvePromise (zone.js:784)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:28129)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
at drainMicroTaskQueue (zone.js:601)
at push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask (zone.js:507)
at ZoneTask.invoke (zone.js:492)
It works in codepen but here’s the link: https://codepen.io/conan_g/pen/WNQYKrb
In the cap you should see that it is the exact same code. I’ve scrolled just a bit in the emulator so you can see that it’s the viewport height before you see the text below. I’ve also tried in Chrome using the inspector and got the same results.
The onsen links are the from the library which I just grabbed last week and I’ve not altered anything there. I also tried with the CDN and got the same results.
Thanks, I wasn’t sure if there was an easier way but this makes sense.
I can play with a bundler for a more elegant solution later but per the example I just made a /lib folder and dropped everything in there.