-
-
Notifications
You must be signed in to change notification settings - Fork 243
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
Rewrite to version 5.0.0 #404
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amazing work so far @piotr-oles!
cc @sheetalkamat and @andrewbranch - I thought you might be interested in the work Piotr has been putting into making fork-ts-checker-webpack-plugin
project references and tsbuildinfo friendly
src/typescript-reporter/reporter/ControlledWatchSolutionBuilderHost.ts
Outdated
Show resolved
Hide resolved
src/typescript-reporter/reporter/ControlledWatchSolutionBuilderHost.ts
Outdated
Show resolved
Hide resolved
Yeah this is looking really promising! 🤗 |
4d1c753
to
82962c7
Compare
Release new patch versions for "refactor" and "docs" commits.
82962c7
to
5f5baab
Compare
) Update code-frame dependency from v6 to v7 so that we can drop the chalk v1 dependency. Closes #408
7deeb02
to
25e1e54
Compare
af85143
to
1af07ae
Compare
b7d26d0
to
4479864
Compare
Thanks @ypresto for the implementation of https://github.com/ypresto/fork-ts-checker-async-overlay-webpack-plugin - it was integrated with the plugin in this commit.
Hi @johnnyreilly , I implemented most of the points from the checklist, wrote end-to-end tests, and updated the documentation. Could you re-review this PR? |
4d6b5fb
to
8247ef8
Compare
As this is an only alpha release and all tests passed, I will merge it :) @johnnyreilly , @phryneas I know it's a big PR, so please review it when you have more time and if you have any comments, I will address them in the next alpha releases. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is huuuge 😄
Congrats to that big hunk of work you pulled off there - very impressive!
Is's not really possible to review this as a diff, so I just took a deep dive at the source code.
I really like the new architecture, it's a lot cleaner - great job on that 👍
After reading it, I have to say: I understand what's going on, but if there are any bugs, I probably missed those because I'm not too accustomed to the code base and also haven't had a lot of time to spend with webpack in the recent past. So my review comments are primarily of a more generic nature.
I'll definitely start dogfooding this as soon as I get back into our react project (doing a lot of infra at the moment) and will report back if I find any anomalies there.
function getChangedFiles(compiler: webpack.Compiler): string[] { | ||
let changedFiles: string[] = []; | ||
|
||
if ((compiler as any).modifiedFiles) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally, there is a lot of compiler as any
going on and that makes some stuff hard to read. Maybe it would make sense to define some interface extending webpack.Compiler
and cast that at a central location once or twice?
Something like
type Webpack4Or5 = webpack.Compiler & ({
// webpack 5 stuff
} | {
// webpack 4 stuff
})
The compiler should be able to use the relevant properties as discriminator from there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will try that :)
Just wanted to share these timings that @Timer was kind enough to do here: vercel/next.js#13529 (comment)
|
John, do you think this is due the rewrite to TypeScript or has more changed during the rewrite? I can imagine the TypeScript transpilling does some more runtime checks |
🎉 This PR is included in version 5.0.0-alpha.17 🎉 The release is available on: Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 5.0.0-beta.2 🎉 The release is available on: Your semantic-release bot 📦🚀 |
As I promised a few weeks ago, I've performed a rewrite of the plugin to pay off technical debt and open this plugin for future development. This is a draft PR to show you the progress.
Tasks:
vue
,vue-template-compiler
#209)importsNotUsedAsValues: preserve
)debug: true
flag) (Enable typescript's traceResolution option #59)This release should fix also: #309, #303, #273
Plan:
I'm not sure if I will go through all these points before releasing stable 5.0.0 - some of these points can be implemented later 🚀