News for hackers. Stuff that matters.
Re:Rome: A Linter for JavaScript and TypeScript by wildpeaks on Saturday August 08, 2020 @08:11PM (#24096285)
I removed Babel from my toolchains a while ago, so it's even shorter: TS, ESlint, Prettier, Webpack.
Re:Rome: A Linter for JavaScript and TypeScript by williamdclt on Sunday August 09, 2020 @09:22AM (#24099450)
Same, but I wouldn't say I'm happy with it. Everything's interdependant and that makes it such a pain to configure and maintain:

  - Prettier has to be integrated with ESLint to avoid conflicting formatting and for good devX
  - TS config interferes with ESLint config ("this file is not part of any project" or conflicting unused var warnings)
  - Webpack has to be integrated with TS to compile down to JS
  - ESLint, TS and Webpack all need configuring to know about absolute imports
If you throw babel into the mix, complexity just explodes. Thankfully it's feasible to have a stable config that "just works", but it can be quite the time sink. I wouldn't be against something that takes this pain away
Re:Rome: A Linter for JavaScript and TypeScript by topicseed on Sunday August 09, 2020 @12:43PM (#24100818)
Exactly. Let's say Eslint, TS, Prettier, Jest, and Webpack, are just standard for most projects I start.

The problem is, each little issue a developer has, often requires not just installing these, but then adding a whole bunch of plugins to make them work together. So whenever I start a project, my package.json is just already packed with a gazillion of devDependencies from @types/ to eslint and webpakc plugins.

Re:Rome: A Linter for JavaScript and TypeScript by wildpeaks on Sunday August 09, 2020 @07:27PM (#24103828)
This is the reason why I wrapped my Webpack config in its own package (same with Eslint), that way I pretty much only have a single dependency to add when starting or maintaining a project (and if a project has a very unique need, it can still modify the config generated by the package).

The package has a bunch of automated tests, so Dependabot checks for me if dependency updates are still compatible with the way I expect them to behave (and if a dependency needs to be swapped by another, I only need to do it in one place).