Currently, the scope of the monolithic nuxt.js package is already too big and is already growing. Consider the following use cases:
There's a number of aspects of nuxt each of these won't use. With growing functionality, nuxt will be harder and harder to pick up. Seeing the Issues that get accepted, it is clear the project is moving from "one specific way to make vue ssr applications" to "the best way to develop vue-centric js apps from scratch in most conditions". It's time the project's structure reflects that.
Imo, this will enable easier continued development and use.
I am making a far fetched suggestion that I believe will grant this project easier adoption if implemented before 1.0. It comes in two parts:
.nuxt-link-active
, <nuxt-link>
that just returns a <router-link>
for now.) That's scope and lines of code for nothing.vue-meta
plugin's metaInfo component property is renamed to head. This (afaik) provides no benefit, unlinks it from vue-meta
documentation, and makes it unclear that htmlAttrs and bodyAttrs can still be used.You have a great ally in vue-cli. Just use that to keep things like vuex, vue-router, vue-loader and webpack (maybe even vue?) in the user repo, and provide a recipe that sets them up out of the box. Small helpers like plugins: [{injectAs}]
and setting up aliases for webpack can go in the recipe.
For example:
The way I see these, the first 4 should not depend on each other, but should obviously have some common nuxt dependencies.
Could be even more granular; For example, file apis can be extracted.
<!--cmty--><!--cmty_prevent_hook--><div align="right"><sub><em>This question is available on <a href="https://nuxtjs.cmty.io">Nuxt.js</a> community (<a href="https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c542">#c542</a>)</em></sub></div>