Vue-cli: Plan for Vue CLI v5

Created on 17 Nov 2020  路  18Comments  路  Source: vuejs/vue-cli

Here are the rough ideas:

Major Dependency Upgrades

  • [x] Webpack 5 (also allows to opt-out to webpack 4), https://github.com/vuejs/vue-cli/pull/6060
  • [x] HTML Webpack Plugin 4
  • [x] Cypress 5, would be a peer dependency
  • [x] Workbox 6
  • [x] Jest 26
  • [x] Mocha 8
  • [x] ESLint 7
  • Other necessary major dependency version bumps, including various webpack loaders and plugins

Planned New Features

  • [ ] Performance

    • Now that we use webpack 5 by default, we can utilize its persistent cache to have a better compilation performance.

  • [ ] Predicatibility

    • A --transpile-all CLI flag to include node_modules for transpiration, as a fail-safe for the transpileDependencies option. It should be the recommended way to build your app, especially when you are using webpack 5, as the compilation overhead should be tolerable with the persistent cache.

  • [ ] Modern mode

    • Enabled by default, with additional modern-only and no-modern CLI options

    • A separate polyfills chunk by default

    • Better browserslist integration. For example, safari-no-module-fix can be dropped when browserslist config does not target those buggy browsers.

  • [ ] Configuration

    • Async config loading

Changed Behaviors

  • [x] vue serve/build will be an alias of npm run serve/build. If an entry is designated and no package.json found, it鈥檒l prompt to use vite (Vue 3) or parcel (Vue 2) for instant prototyping instead.

Dropped Features

  • [x] Drop support of Node.js 8, 11, 13
  • [x] Drop support of TSLint
  • [x] Drop support of node-sass
  • [ ] [Drop support of extension-less Vue SFC imports](https://github.com/vitejs/vite/issues/178#issuecomment-630138450)
  • [ ] Do not allow creating projects with uppercase names even in Vue CLI UI.

Other Breaking Changes Under Consideration

  • [ ] [Respect XDG specification for the location of configs](https://github.com/vuejs/vue-cli/issues/5649)

Most helpful comment

FYI v5.0.0-alpha.0 has been released with most underlying dependencies updated.

We'll work on the planned new features next.
https://github.com/vuejs/vue-cli/releases/tag/v5.0.0-alpha.0

All 18 comments

Do we choose to drop extension less SFC imports even for webpack projects or only on vite?

Even for webpack projects. There are edge cases in webpack environment too: https://github.com/vuejs/vue-cli/issues/5307

  • VUE_CLI_SERVICE_CONFIG_PATH as a cli options ? muilt vue.config.js in monorepos
  • --debug mode for server run to output some verbose? console is terrible method to track code of cli
  • default show spend time for build process锛宼o optimize.

mark

If possible, please update postcss-loader dependency to 4.0.4 from 3.0.0 to add compatibility with Postcss 8/Tailwind 2.0.

eslint-loader has been deprecated. Why not eslint-webpack-plugin?

  • VUE_CLI_SERVICE_CONFIG_PATH as a cli options ? muilt vue.config.js in monorepos
  • --debug mode for server run to output some verbose? console is terrible method to track code of cli
  • default show spend time for build process锛宼o optimize.

mark

These are not major design changes, so can be reserved for later minor releases.
We'll focus on the changes listed in the post first.

The last one is easy, though. I'll take a look if time permits.

If possible, please update postcss-loader dependency to 4.0.4 from 3.0.0 to add compatibility with Postcss 8/Tailwind 2.0.

Yeah, I'm working on that.

eslint-loader has been deprecated. Why not eslint-webpack-plugin?

It will be included in the final release.

Can we add jsconfig.json when create general project?
This will work better with Vetur or VueDX.

Can we address #4801 ?
It is really hard to develop & debug Service Worker when we have to rebuild the app on each iteration.

It could mean enabling service worker in development mode, which seems to be a major change.

Thanks

Async config loading

Try to achieve this feature, but block by issue https://github.com/benmosher/eslint-plugin-import/issues/883

sync @vue/cli-service/webpack.config.js is required by @vue/eslint-config-standard

Can we add .eslintignore when create project which has eslint?

sometimes it cannot auto import reactive api, like type ref , it can't auto import or using quickfix

when init the project, if choose typescript template, add ts-jest automatically also config jest.config

FYI v5.0.0-alpha.0 has been released with most underlying dependencies updated.

We'll work on the planned new features next.
https://github.com/vuejs/vue-cli/releases/tag/v5.0.0-alpha.0

Is module federation supported for multiple pages / build targets?

ES feature support in v5: #5881 ?

I created a brand new project using v5 alpha, but it doesn't work ?? etc.

Use the online presets(ajax锛無r other ways), not just from a Git repo! I dont want to create a repo just for a single preset !
and if i have two preset in a repo锛宑ould I have a choice?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Benzenes picture Benzenes  路  3Comments

chasegiunta picture chasegiunta  路  3Comments

eladcandroid picture eladcandroid  路  3Comments

joshuajohnson814 picture joshuajohnson814  路  3Comments

BusyHe picture BusyHe  路  3Comments