Welcome everyone and let's have a good time for the upcoming hour!
Today we're meeting with Guillaume Chau and Evan You, the masterminds behind the new Vue-CLI 3. Thank you very much for joining us here today and delivering such a great release.
The rules are simple. You can ask questions by adding [Q&A] tag before them. There can be max 3 questions in the queue at the same time, if there are more, you'll have to wait and ask after one of them gets answered. Make sure to keep your question safe in the clipboard! The moderators will manage the queue and inform when new questions can be asked.
If your question gets answered, you can ask a short follow up question too. But if there's more of them, please save them for after the event. All the answers will be available in the Q&A transcription on our chat's website.Evan You
Hi everyone.Guillaume Chau
(Guillaume actually greeted with a waving hand and a cat emoticon, so here's a picture of a cat waving its paw)
What would you say to someone not convinced about using Vue CLI? While I'm a user, I have coworkers that prefer hand rolling everything such as the Babel and Webpack configuration - this has led to lots of extra time spent debugging configuration files. Apparently that isn't enough to persuade them!Guillaume Chau
You can customize everything in Vue CLI, so it's not a drawback. And it's upgradable too.Evan You
Most aspects of the configuration is still open to modification even if you are using Vue CLI. If they fear losing flexibility, you can show them how everything is still configurable.
The plugin system is super easy to use, but there are a lot that are not working/incompatible with Vue CLI 3 boilerplate. Do you have a plan to ensure their safety? Manual/auto validation or some kind of badge such as the official one.Evan You
The official plugins are always under the @vue/ organization. For 3rd party plugins, I'm not sure what you mean by not working - some of them may have been created during the beta/rc phase, so I'd wait for some time before the ecosystem stablizes.Guillaume Chau
The users can submit issues to the plugins if they don't work correctly, but I don't think we have the time to manually check them all.
How did the process of working on new Vue CLI look like and what part of the new Vue CLI was the most difficult to write?Evan You
I actually spent a long time designing how it would work. One of the difficult parts was figuring out how to make plugins contain both the scaffolding part (generator) AND the runtime configuration tweaks.
And then a lot of work went into making sure all plugin combinations actually work together.
Is there any plan to integrate Parcel on Vue CLI? Might bring better performance and less configuration. Note I think Vue CLI 3 is awesome, I'm just interested in the decision making.Evan You
We are not planning to integrate Parcel. Parcel's positioning is a bit different from webpack now, where it's trying to be a full development tool instead of just a bundler. It's also (still) not as feature rich and configurable as Webpack.
Hi Evan, are there plans to provide native Vue.js plugin for API authentication, provided by the core team? Those third party packages are okay, but seem to be sometimes difficult to configure.Guillaume Chau
There's no such plan as far as I know.Evan You
The authentication involves too many variants (your server setup, auth model etc) and it's not quite feasible for us to provide one single solution.
Are there any plans to have a CLI plugin for NativeScript/NativeScript-Vue?Guillaume Chau
Nativescript team plans to do a plugin for Vue CLI 3. Then they will deprecate the current Vue CLI 2 nativescript template.
Are there any plans for official Electron support in Vue CLI 3?
Are there any plans to support other types of templates like nativescript and vue-native?Guillaume Chau
No official plans but it should already be possible with the plugin API.Evan You
Vue CLI 3 is designed specifically around web applications, although the underlying architecture may apply to alternative targets - we want to make the plugin system support that, but that's not going to be our main focus.
How will the version mismatches be handled? Our Vue CLI plugin has been broken several times by API changes or when the user has an older version installed. Should we just parse the installed cli version and block installation if it isn't supported?Guillaume Chau
We follow semver, so while it was on beta we did breaking changes, but now that it's stable, there won't be any until Vue CLI 4.0.Evan You
We still had breaking changes during RC phases, but will be more stable now that it's officially 3.0.
Are there any plans to allow users to specify the configurations for eslint during the UI setup when creating a project using the UI? eslint is just an example btwEvan You
That would make the creation process too complicated. You can always pick a base config and tweak it after project creation.Guillaume Chau
You can already configure the important settings in the UI while creating a project, and then you have a ESlint plugin vue configuration screen in your project.
Have you thought of providing file generators in Vue CLI, like for example in Ember CLI?Evan You
Unlike Ember, Vue CLI is less opinionated on file structure, i.e. you can arrange files anyway you want. So we are not positioned to do file generation. But! You can write your own plugin for that. ;)
Will Vue CLI be able to suggest improvements, as the Google Chrome Light House does?Evan You
Maybe as a plugin. :) That's a good idea actually, we may consider it in the future.Guillaume Chau
I have talked about this with CompuIves from Codesandbox, it might come in some way or another. We could have some kind of diagnosis system similar to what Codesandbox does to some extent and suggest things from the errors. By the way, the UI already has a basic Suggestion API.
Were there some features that you decided not to include into Vue CLI 3 although they were suggested and considered, or you're waiting for them until the next Vue CLI or Vue releases?
Is there any new feature/big improvement awaiting coming to Vue CLI 3 now that it is released?
What is on the roadmap for Vue CLI 4?Guillaume Chau
I don't think we have a roadmap for Vue CLI 4 yet, we just released 3.0. :) But I have a lot of things planned for the UI. There's an unannounced big feature for Vue CLI UI I have in the design phase and there will be a more options on the settings page.Evan You
The missing features that we want to eventually add to Vue CLI are a vue upgrade command and a better error overlay. Also we are waiting for Babel 7's final release - will likely be in 3.1.
(Babel 7 was officially released a week later - gusto)
Which ES version will Vue CLI support when Babel 7 is released? I know they are removing Stages from Babel 7 which sounds like it could affect how a lot of people use Babel currently.Guillaume Chau
We are including the most popular experimental syntax plugins by default, you can easily add more. Babel only removed the stages, which were collections of syntax plugins.Evan You
We only support a small set of these features: https://github.com/vuejs/vue-cli/blob/dev/packages/%40vue/babel-preset-app/README.md#stage-3-or-below
Hi, Evan, it's pleasure to meet you. Is it better to use Vue CLI with Node.js on server side? I just feel that it takes too much time to compile browser version each time you made changes.Guillaume Chau
The Vue CLI works with Node.js, but the build performance is dependent on Webpack.
Is there a way for 3rd party plugins to use the Webpack dashboard in CLI UI without it interfering with the regular build/serve?Guillaume Chau
You can load it in your tasks (it's always loaded) and use the Shared Data API with the same IDs.
There are templates generated by Vue CLI, isn't it overwhelmed to mix JS, CSS and HTML in one file?Evan You
A lot of people like Vue specifically because of Single File Components. It reduces the need to context-switch when you work on a single component. The three parts are tightly coupled by nature, since they belong to the same component (i.e. the same piece of concern in your app).
When working on Vue CLI do you ever look at other JS framework CLIs to get some ideas of what other ideas you could implement while developing new versions and if so do you ever feel not OK of taking other projects ideas. A bit of a weird question but I'm interested to see if devs are "ashamed" to get ideas from other projects.Guillaume Chau
I think most people are taking our UI idea from Mars nowadays. :)
What is the next big focus after Vue CLI 3 release, any other surprise to expect?Guillaume Chau
The release of vue-devtools 5.0 beta.Evan You
I'm getting back to core, merging PRs and preparing 2.6 release. A lot of features are lined up for 2.6 already.
What is the estimated time frame for Vue 3? (i'd assume late next year)Guillaume Chau
When it's ready™Evan You
There's no concrete timeline yet, but we will announce it at least 6 months before the release.
What are the top three biggest changes for Vue 3? (sorry I always ask Trivial Pursuit style questions)Guillaume Chau
Vue 3 will be split into multiple packages, but you will still be able to install Vue and get started directly.Evan You
The public API changes that affect how you write Vue code will be minimal. Biggest changes are all internal:
What's the coolest feature you would like to add, but can't (at least for now) due to limitations of legacy browsers?
Are there certain features that Vue originally was supposed to have but had to be removed? :innocent:Evan You
Proxy-based observation, but that we will introduce in 2.x-next.
What are your thoughts and/or medium to long-term plans on typescript, and typescript with Vue?Guillaume Chau
Continue working on better support for it. :) Also it's a built-in feature of Vue CLI 3Evan You
In Vue 3, the core will be refactored to use TypeScript. In that process we also plan to improve general type-friendlyness of the APIs.Guillaume Chau
Instead of flow which we are currently using.
Will Vue officially support class-based syntax for components? I remember you writing in the Vue 1 times that class-based syntax is just an addition and won't become an official version of components, but with Vue 3 rewrite in Typescript, are you going to keep the objects as main official way to write the components?Evan You
We will likely support class-based syntax as a first-class citizen, but object-based syntax will definitely still be supported for compatibility. It depends a lot on the new decorator syntax being stage 3+.
How can I propose a feature for vue 3? Something like PEP in python.Evan You
We will have an RFC repo like Rust/React.
Over the moon about integrating NativeScript-Vue with DevTools. Greatest thing since sliced bread. How do you think DevTools might be made even more awesome? I guess this is a roadmap question.Guillaume Chau
Everything that will be in devtools 5.0 beta means way better devtools with 2 times more features. :P And we have more smaller enhancements planned.
If Vue 3 (or 2.x-next) will be adding Proxy-based observation, will this imply some changes for Vuex in order to make Vuex a little more easy to use?Guillaume Chau
We are experimenting with merging mutations and actions in order to make Vuex easier to use, but that's not related to reactivity.Evan You
Not specifically for Vuex - you will no longer need to use Vue.set because we will be able to detect new property additions and array index setting (foo[id] = item).Guillaume Chau
Also using proxies will potentially be faster.
Are there any plans for an official accessibility plugin for Vue, to position Vue as THE framework for a more accessible web? Or is this just up to 3rd party plugins?Evan You
Accessibility is a rather challenging problem domain because it has a lot to do with the specific type of interface you are building. I don't think it's something that can be solved by a plugin - it's more about awareness and best practices.Guillaume Chau
We could have some accessibility-related recipes in the cookbook or some advice in the guide however.Evan You
Yeah, we can always address that via documentation.
When will we get easy to install plugins for Netbeans and others free IDE to highlight .vue files?
(OK, this question was missed during the event, but let me provide the answer anyways - gusto)
How I see it, that totally depends on the community - each IDE works with a different plugins system so it requires a good knowledge of particular environment which Vue.js core devs can't focus on themselves - it's not their area of specialization. The IDE integration for Vue in VSCode was a community effort, while with Webstorm it was written by people in JetBrains.
This might not be fully related to the Vue Cli, but i’d like to know what are your efforts to support diversity in Vue?Evan You
I'm on the board for Vue Vixens and we collaborate with them in Vue events around the world to help female developers get into Vue.
In terms of cultural diversity, I think we are doing pretty well - the core team is literally from all over the world, so are the users.
Although Vue ecosystem libraries like Vuex, router, CLI etc. are mainteined by many people (mainly core team), the "most important" part, which is Vue core seems to be maintained only by Evan (source: https://github.com/vuejs/vue/graphs/contributors). How do you plan to change that?Evan You
I'm aware of that, but it's less accurate to say I'm the only person doing the work now - I am the only person merging PRs, yes, but those PRs are from many different people.
Also we are already in the design phase for v3, where a big focus will be refactoring the architecture so each part of core is easier to contribute to.
What would you say is the easiest way for someone to contribute to the Vue Ecosystem, other than contributing to the docs which is the usual 'first timer' contributor path?Evan You
Look around the vuejs organization of GitHub. There are a lot of repositories - some of them will have issues marked with "contribution welcome" or "help wanted" - these are usually good for first-time contributors as well.
In addition, just helping us triaging issues is already good help.
VueJS and ReactJs are both reactive and similar in many ways. Can you name any other reactive frameworks that could compete with VueJS?Guillaume Chau
Vue reactivity is more similar to MobX.
What was the one takeaway you discovered as a team from the recent sprint?Guillaume Chau
Being at the same time at the same place helped a lot communicating, deciding and giving feedback, Also, working full-time (instead of working during the free time), so we were able to do a lot of progress on different projects like the devtools, eslint and JSX support
How are you Evan by the way? :)Evan You
I'm doing great haha.
Any plans on coming to Latin America? Vue is becoming a trend and maybe Spanish support isn't pairing up yet (documentation wise).Evan You
I personally don't know Spanish (or Portuguese) so it could be tough for me - but it seems there's an active community in Brazil.Guillaume Chau
We are open to any translation for the core as long as it stays maintained.
What part of core/cli/ecosystem lacks contributions the most?Evan You
It's actually a hard question. :) I think as a whole there's not significant difference between parts of the ecosystem - we welcome all kinds of contributions.
Do you develop some web application using Vue and Vue CLI or do you just develop framework itself?Guillaume Chau
Yes I work on Vue apps, at work and for personal projects.
What was the most challenging part of Vue for you to write?Evan You
The most challenging part is probably getting nested slots passing to behave correctly... I think they are still not 100% correct. ;)
Thank you very much for joining our event.
Thank you Guillaume and Evan for accepting our invitation and great answers. Thank you all for interesting questions.
The whole transcription of the event will be available on our new official chat website and we hope to invite you soon for the next Q&A session.Evan You
Thanks everyone. Gotta go lunch - thanks again. Bye!Guillaume Chau
Thanks everyone for your questions! :)
Thank you for a great event! :)
Would it make sense for any further questions to go on the repo?Guillaume Chau
The repo issues are meant for bug report or feature request only, please ask your questions on Discord or the forum.
Thank you Evan and Guillaume
thank you for answers!
Thanks everyone for the participation to this first Q&A event. Thank you to the core team for their time!
Thanks Evan and Guillaume for your answers and not so terrible jokes. :p
Thank you for the Q& and amazing tools Guillaume and Evan!
Thanks for answers. :)Guillaume Chau
Thanks to the moderators as well!
I just missed the whole thing didn't I...
Yes you did, so next time be sure to join us on time everyone. ;)