• today I'm gonna update the Sass website to use the standard Sass TypeScript linter config
  • I want to modify the config a bit but it's a pain to update across all three Sass TypeScript repos
  • it's probably time to stop copy-pasting and pull it into a shared package
  • I'll put it in a package in the Dart Sass repo, just like we do with the shared Dart config
  • we've got a TypeScript package in there so I'll link them together with a file: dependency
  • turns out npm doesn't install transitive dependencies through file:
  • this breaks my entire CI flow. shit
  • okay well everyone knows npm is the worst, no surprise there
  • Yarn is supposed to support a flat dependency structure, right?
  • converting to Yarn isn't that bad as it turns out
  • Yarn installs transitive dependencies through file:, hooray!
  • but it doesn't handle symlinks through file:, which breaks my entire dev flow. shit
  • all is not lost. Yarn "workspaces" allow me to declare a bunch of interdependent packages in one repo that all get symlinked together
  • okay this kinda mostly works, everything is symlinked where it should be, let's try running the linter
  • no output, exit code 1. shit
  • turns out it's reported upstream but closed as "cannot reproduce"
  • guess I'll fucking dive in and see why I can reproduce
  • it's failing with no output because of a catch (e) { return false; }, of course
  • add a console.error() to discover that the linter wrapper can't find eslint
  • turns out Yarn doesn't add sibling executables to PATH anymore
  • why? who knows! it's not documented anywhere
  • guess I'm just copy-pasting linter configs around until some aspect of this gets fixed

You must log in to comment.

in reply to @nex3's post: