I believe all of the disadvantages listed can be solved/nearly solved:
no ability to “write code once then deploy as a SPA/PWA/Mobile & Electron app”; you will usually pick what you want to build (SPA or PWA – only) right from the start when creating the app with Vue CLI; even if vue-cli will support these
Not true, you can always call
vue add my-plugin
only SPA and PWA supported; can’t build Mobile or Electron apps as vue cli doesn’t support it; the smart algorithms behind Quasar CLI use more than one webpack config, which is not possible with Vue CLI
- PWA: @vue/cli-plugin-pwa (official)
- Mobile: vue-cli-plugin-nativescript-vue (TRULY NATIVE, by nativescript-vue, semi official)
- Electron: vue-cli-plugin-electron-builder (made by me)
You can use a custom webpack config by calling
api.resolveChainableWebpackConfig() and modify it as you wish. With this PR you can import the build and serve commands and call them with a custom chainable webpack config (used in vue-cli-plugin-electron-builder).
none of the features embedded in quasar.conf.js; for many, you’ll have to manually edit your src/main.js file
This is true, however, I bet this could be implemented in a plugin by having it create a custom
quasarImports.js during build/serve and having it imported in
main.js. This is also a relatively minor issue.
building/developing with one theme and switching to the other requires editing the vue config (in package.json or vue.config.js, depending on what you picked when creating the vue app)
With the previously mentioned PR, you can overwrite the build/serve commands, calling them multiple times for each theme with custom output directories for each build.
you lose the ability to effortlessly upgrade your the Quasar version that you are using as with Quasar CLI; it will possibly require you to manually edit src/main.js to update to latest specs
Most of the time, it is quite easy to upgrade to the new version, and will be easier with the custom
Some other features of using vue-cli not mentioned:
- Way more community plugins (unit testing, typescript, etc…)
- CLI ui, making it super easy for new developers
- Better support, the entire vuejs team is working on vue-cli
- Easier integration with existing vue-cli 3 apps
- Less risk for large projects as they are not locked into quasar
- Less work for quasar dev team as they have less bugs, don’t have to add typescript/testing support, and just less code to maintain in general.
I look forward to the bright future of quasar and I hope my comments will be taken into account.