- ESLint has released v6, should upgrade, contribution welcome
vue upgrade
, almost done, needs tests, assigned to myself, expected to get it done before Thursday. After that we should start writing migration documentation.- Make vuex & vue-router standalone plugins vuejs/vue-cli#4196
- PWA plugin UI (follow up of vuejs/vue-cli#2981)
- Possible Jest regression vuejs/vue-cli#4051 (comment)
-
Plugin Ordering
After thinking about this, I realized it's not that urgent than I previously thought. There're all kinds of workarounds for the use cases (either by hacking the API or by changing the plugin UX flow). I prefer not to touch the code base at the moment in favor of stability. We don't have that much time and energy to fix all the possible bugs coming with this big feature.
We can add this later in a feature release if we come to a consensus on the design and implementation.
-
Warn before Generator is invoked and might override uncommited changes This is needed for
vue upgrade
as we'll try to automatically migrate users' code
See:
Some issues have the "good first issue" label added but I didn't check them all so maybe there are more easy ones. There're also other "nice to have" features with the "enhancement" label, I haven't looked into them thoroughly so if you are willing to pick one up, please comment at it first.
So, after some careful thinking, I agree with what you said above completely. In fact, I have already developed some plugins that do the exact same thing.
But I think a better way to solve this would be to add an
assertPluginVersion('plugin-name', 'version')
like how we did for the cli and service versions.Unfortunately, I don't think delegation is enough. It's good when you are depending on a plugin you control, but it's not enough when the plugin you want to delegate is not under your control. Also, what about the scenarios where you want all plugins to always delegate to your plugin for something but they don't? (Typescript plugin is the biggest example for this).
Coming to this, we already have 2 hooks in the current code which are just renamed in the proposal to make them more easier to understand what they do.
postProcessFiles
->afterRender
onCreateComplete
->afterWrite
We need
afterAnyRender
because I really don't imagine any other way of achieving the following situation:Sure, we can leave the typescript generation to individual plugins but they will not be under our control (they are 3rd party) and they might not implement it, which means more trouble for the end user.
Similarly, we need
afterAnyWrite
for the same thing but for eslint plugin.And finally, the
beforeAnyRender
is needed so that we can decouple any conversion plugins. As a plugin writer, I don't want to think whether the user is using typescript or some other language and try to support all of them. This hook can be implemented by those converter plugins and make life easier for the plugin writers.As you can see, the PR is just 100 lines to implement the above lifecycle hook system. But, I am always up for more discussion on this in case I am missing anything. Please do propose something if you have a counter proposal.