exile.watch engineering
  • exile.watch engineering blog
  • April 2024
    • Why doesn't Dependabot update package.json?
  • March 2024
    • The savior amidst the chaos of dependency updates - Dependabot
    • Why project's local setup instructions are not part of README?
    • Leveraging Lefthook to enforce commit guidelines at exile.watch
    • The package manager of exile.watch
    • Lerna - the hidden powerhouse of exile.watch
      • 1. Separate repository and monorepo tool
      • 2. A module bundler - the fun begins
      • 3. Module registry (a place where packages get to chill)
      • 4. Versioning, Publishing, and Configuring lerna.json for Commit Conventions
      • 5. Some automation magic using the (Lerna) CLI
      • 6. How does one test lerna packages at exile.watch: locally and in the real world
    • To open source or to not open source
    • exile.watch architecture
Powered by GitBook
On this page

Was this helpful?

  1. March 2024
  2. Lerna - the hidden powerhouse of exile.watch

2. A module bundler - the fun begins

1 min read

Previous1. Separate repository and monorepo toolNext3. Module registry (a place where packages get to chill)

Last updated 1 year ago

Was this helpful?

This page is part of list - 2/7


While you technically don't need a module bundler to get your project off the ground (you could just transpile each file from source to output directory and adjust your package.json accordingly), using one can streamline your process significantly.

You can make Rollup's config somewhat opinionated easily which means that if you find a setup that works for one package, it's likely to work across the board with minimal fuss.

This consistency is a big win when managing multiple packages, ensuring they're all bundled efficiently in the same manner.

And it doesn’t stop there.


Each package adopts a specific stance, making sure that whether I’m whipping up a new consumer app, a browser extension, or even a desktop application, the development experience remains consistent.

Everything is expected to work, act, and behave the same, regardless of where it’s implemented.


Having established our bundling strategy with Rollup, the next logical step is to consider where our packages will live.

I went with , thanks to my previous experience with it. You can read more about bundlers .

To keep it clear: Rollup itself is not opinionated - just look at this

So, what's the deal with the packages in ?

Each package serves its unique purpose, acting as a piece of the larger puzzle. They're essentially for different areas of functionality:

bundles and related dependencies. Adding it as a dev dependency means you’re indirectly installing TypeScript itself.

includes everything you need for /JavaScript unit testing, like and , along with a few other relevant plugins.

Rollup
here
list
exile.watch
boilerplates
@exile-watch/typescript-config
TypeScript
@exile-watch/unit-testing-config
React
Vitest
@testing-library/react
The toolkit I needed to make it all happen
exile.watch logo