-
-
Notifications
You must be signed in to change notification settings - Fork 237
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
Remove ESLint support #601
Comments
Hey @piotr-oles Here's my thoughts:
It does, but this is already completed work and the abstraction isn't giant.
For my money these linting and type checking are similar enough to be considered as not really violating this principle. Just my opinion.
For me this is the clincher. If ESLint support is costing you time, and given you're the main person supporting the project at the moment, I think you should feel free to drop ESLint support. You're right, there's other tools out there that can do this. And in fact tools like create-react-app already use those in favour of the inbuilt fork-ts-checker-webpack-plugin functionality. So go for it! |
Can't you use Typescript's AST to get ESLint errors with something like this? https://gist.github.com/Quramy/d1473603c1e00132d71de573eb5d2cae |
I also want to mention that only two alternatives exist, eslint-loader and eslint-webpack-plugin. Both of which aren't running in a separate process and significantly slow down the compilation. I'll probably just be using older versions of fork-ts-checker if eslint support is dropped. Actually in the light of this post I've tried using eslint-webpack-plugin in our codebase, and it ate 21Gb of my RAM for no reason while also making the compilation 2-3x slower. |
That's not true - eslint-webpack-plugin uses worker-thread :) It may not be perfect as all software - did you report an issue about memory consumption? |
I just ran a series of builds with |
Thanks for the feedback :) I will not remove older version of the plugin, so you will still be able to use it ;) |
Thank you for all your work :) |
I'll miss ESLint support, it's a key feature of the plugin. I have yet to get |
While I can certainly understand your reasoning (and really appreciate your work), I have to admit I'm saddened by this removal. With v6 and eslint, my build used to take ~24s, now with v7 and Also while small, if I remove eslint from both v6 and v7 build, v7 is consistently taking 1s longer. |
I think the main difference is that they start to lint files after all modules are processed (to get a list of changed/deleted files). |
I'm thinking about removing ESLint support from this plugin in the next major release.
Context
When I created the first version of this plugin, I added TSLint support. I did it because TSLint was able to consume TypeScript's AST. This meant that we were parsing TypeScript files only once and then used AST's in both TypeScript and TSLint. This was a clear performance benefit.
Later, TSLint was deprecated, and we added ESLint as a substitute for existing features of the plugin. We can't re-use TypeScript's AST in the ESLint so there is no performance benefit.
Issues
Having ESLint support in the plugin:
fork-ts-checker-webpack-plugin
, notfork-es-linter-webpack-plugin
There is also https://github.com/webpack-contrib/eslint-webpack-plugin which looks like a nice replacement for this feature.
What do you think @johnnyreilly?
The text was updated successfully, but these errors were encountered: