esbuild-plugin-ts-references

esbuild plugin for typescript references

Usage no npm install needed!

<script type="module">
  import esbuildPluginTsReferences from 'https://cdn.skypack.dev/esbuild-plugin-ts-references';
</script>

README

esbuild-plugin-ts-references

esbuild plugin for Typescript references.

Rationale

A common approach for monorepos is yarn/npm/pnpm workspaces + typescript references.

While it works in VSCode and using tsc --build, esbuild doesn't resolve such references automatically. The feature request to add support for it was closed as it is not in the scope of the bundler and creation of a plugin was suggested.

This is the plugin.

Installation

npm install --save-dev esbuild-plugin-ts-references

Usage

Define plugin in the plugins section of esbuild config like this:

const esbuild = require('esbuild');
const tsReferences = require('esbuild-plugin-ts-references');

esbuild.build({
  // ...
  plugins: [tsReferences]
});

Implementation details

Currently the algorithm to resolve the references is very simple (but it works for me):

  • Find the closest tsconfig.json to the build target
  • Resolve package.json and tsconfig.json of references
  • Map package name from package.json to rootDir from tsconfig.json
  • Profit!