Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

webpack 5 release plan #11406

Closed
37 of 46 tasks
sokra opened this issue Sep 1, 2020 · 22 comments
Closed
37 of 46 tasks

webpack 5 release plan #11406

sokra opened this issue Sep 1, 2020 · 22 comments
Milestone

Comments

@sokra
Copy link
Member

sokra commented Sep 1, 2020

TL;DR: release planned for 2020-10-10

After nearly 1 year of beta testing and about 2 years of development we feel that it's time to release webpack 5 soon. As promised we do announce the release at least one month earlier to allow the ecosystem to catch up. To support that we will release have released a Release Candidate (RC) soon-ish in about 1-2 weeks. Once the RC has been released we try to avoid breaking changes (expect for experimental features, or when absolutely necessary).

We will use the time until the release to:

  • Fix bugs
  • Update the changelog to give a good picture of the changes
  • Update the migration guide
  • Create a separate migration guide for plugin developers
  • Update the documentation so that at least a majority of webpack 5 features is documented.
  • Update important ecosystem components to be webpack 5 compatible
    • webpack-cli
    • webpack-dev-server/middleware
    • mini-css-extract-plugin
  • Write in-deep guides to the new features
  • Improve deprecation messages and add better warnings for breaking changes

This is works out great we release webpack 5 at 2020-10-10 because it's a cool date.

Note that while we consider webpack 5 as pretty stable, there are probably still many bugs and problems. Some are expected breaking changes, some are bugs that we missed. If you have problems upgrading make sure to read the migration guide and changelog where we places some hints how to fix these problems and/or why we did some of the breaking changes. If you still run into problems, it might be a bug or something is missing in the migration guide/changelog, please report an issue.

Note that some of the experimental features are still incomplete. They are excluded from SemVer for webpack and we continue to develop them...

Note that minor bugs won't prevent us from releasing. The release is more about finishing breaking changes then about a super stable release. We will release minor/patch version very often to address bugs and add more feature (as we have done with webpack 4).


We are not yet ready for a release candidate.

The following breaking changes need to be implemented before the RC can be released:

  • resolving: resolve.fallback and imports field need to be added
    • We consider this a very small breaking change as imports field is rarely used and only incorrectly imports field would break
  • stats: The stats format and defaults need to be improved for readability (Status: breaking changes done)
    • While mainly affecting the text format, the JSON format might be affected as well.
    • assets grouping
    • modules grouping
    • entrypoints verbosity
    • summary
    • size color scale
    • avoid MiB in favor of KiB
    • 1000s separator in size numbers
    • hide [emitted]/[built] when all assets/modules shown have it
    • highlight filename, lowlight path
    • sort assets by size
    • hint about error details
  • assets: The asset experiment will be enabled by default.
    • This enables new URL parsing in modules and this can break code.
  • WebWorker: Add worker experiment to handle new Worker(new URL("./worker", import.meta.url)), etc.
    • This is not a breaking change, but we might figure out the some internal breaking changes are needed to implement that. That's why it need to be pushed for the RC.
  • node.js compat: The mjs experiment will be enabled by default. This affects .mjs files and type: "module" in package.json.
    • Affect files are handled more strict and certain constructs are forbidden. Resolving is also affected (extension is required).
  • module concatenation: refactor to make it a first class citizen
  • changelog: The changelog is outdated and need to be updated for recent changed (Status: beta.21 -> beta.30 missing)
  • improved target option
    • handle in defaulting
    • externalsPresets
    • loader.target
    • output.ecmaVersion -> output.environment.xxx
    • output.environment.global
  • enhanced-resolve, loader-runner and webpack-sources from beta -> stable
  • output.publicPath: "auto" as default?
  • Known bugs:
    • Module Concatenation: delete a.b.c is broken (Status: Parsing need to be changed a bit)
    • Module Federation: Circular remotes are broken (Stats: requires a breaking change on the API)
  • (list might be incomplete...)

Known Problems blocking release:

  • delete x.y.z doesn't work with optimization.concatenateModules: true yet.
  • mini-css-extract-plugin is not fully compatible and there a few problems.
  • html-webpack-plugin doesn't understand the new default automatic publicPath yet. Use output.publicPath: "" instead.
  • target doesn't support individual browser versions yet. Use the general targets for now: target: ["web", "es2020"]
  • The stable webpack-cli shows too verbose output for schema validation problems.
  • new URL with string not starting with ./ or ../ works incorrectly
  • The stats grouping algorithm need still some fine-tuning

Please don't report any outstanding issues in this thread. Please create a new issue (Reference this issue)!

This thread is reserved for feedback how happy you are that webpack 5 is released, to post positive experience with webpack 5 if you already tried the beta and to post any announcements that ecosystem loaders/plugins/tools are webpack 5 compatible.

I'll update the issue with more information when available.

@sokra sokra pinned this issue Sep 1, 2020
@ycjcl868
Copy link

ycjcl868 commented Sep 1, 2020

awesome ~

@artem-malko
Copy link

artem-malko commented Sep 1, 2020

As for me, webpack 5 became super-fast against its 4 version. Built-in cache works perfectly) And it wasn't to hard to switch from webpack 4 to webpack 5!

There are some issues, how to migrate my own loaders and plugins, but there are just some warnings, and it is nice, cause you (webpack team) have made so many cool features, and there is no serious problems with version switching.

@jeremytenjo
Copy link

Amazing work webpack team 👍

@syuilo
Copy link

syuilo commented Sep 2, 2020

Thank you for your hardwork🥰

@davidcalhoun
Copy link

davidcalhoun commented Sep 2, 2020

Thank you! Looking forward to this, especially the ability to output modules, which is why I'm using Rollup at the moment for library code. Looking forward to moving over to just using Webpack.

BTW: 2020-10-10 = 👓-🙌- 🙌

@Linkontoask
Copy link

Linkontoask commented Sep 3, 2020

Looking forward to!

@k644606347
Copy link

Thank you for your hardwork:smiling_face_with_three_hearts:

@alexander-akait
Copy link
Member

@isrmicha What is a problem?

@csvan
Copy link

csvan commented Sep 12, 2020

Module Federation is going to be a gamechanger for us. Very much looking forward to it!

@AlonMiz
Copy link

AlonMiz commented Sep 13, 2020

GREAT NEWS 🎉

@sokra
Copy link
Member Author

sokra commented Sep 13, 2020

@AlonMiz please create an issue

@TheCodingGorilla
Copy link

Really looking forward to Module Federation. Thank you for all yours and the teams hard work. 🙇

@smoliakov
Copy link

I am sure Module Federation will change microfrontends, looking forward to using it!
It`s a geat work!

@sokra
Copy link
Member Author

sokra commented Sep 20, 2020

https://github.com/webpack/webpack/releases/tag/v5.0.0-rc.0

@jantimon
Copy link
Contributor

html-webpack-plugin doesn't understand the new default automatic publicPath yet. Use output.publicPath: "" instead.

Thanks for the heads up ( jantimon/html-webpack-plugin#1514 ) 👍

Is there any api which returns the calculated publicPath?
Right now we are using https://github.com/jantimon/html-webpack-plugin/blob/f3ccdd5125566ba8d2965cfb4f59b058854fa3c9/index.js#L533-L540

@TheLarkInn TheLarkInn added this to the webpack 5 milestone Sep 23, 2020
@fwh1990
Copy link

fwh1990 commented Sep 30, 2020

Who will be faster and more modern between webpack5 and vite?

@artem-malko
Copy link

artem-malko commented Sep 30, 2020

Who will be faster and more modern between webpack5 and vite?

Webpack works with any code, not only with Vue3 =)

@fwh1990
Copy link

fwh1990 commented Sep 30, 2020

Who will be faster and more modern between webpack5 and vite?

Webpack works with any code, not only with Vue3 =)

Vite also works with react and other frameworks.

Although Vite is primarily designed to work with Vue 3, it can support other frameworks as well. For example, try npm init vite-app --template react or --template preact.

BTW, webpack is the best tool now.

@udayrajMT
Copy link

Thank you for making this game changer tool. Hats off for your hard work! 👏👏

@csvan
Copy link

csvan commented Oct 10, 2020

Are we still on for today? :)

@sokra
Copy link
Member Author

sokra commented Oct 10, 2020

yep. in about 9 hours...

@csvan
Copy link

csvan commented Oct 10, 2020

Woop!

https://github.com/webpack/webpack/releases/tag/v5.0.0

https://webpack.js.org/blog/2020-10-10-webpack-5-release/

@sokra sokra closed this as completed Oct 10, 2020
@sokra sokra unpinned this issue Oct 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests