parcel-resolver-tspaths

Supports tsconfig paths in Parcelv2.

Usage no npm install needed!

<script type="module">
  import parcelResolverTspaths from 'https://cdn.skypack.dev/parcel-resolver-tspaths';
</script>

README

parcel-resolver-tspaths

Parcel does not make use of tsconfig.json to resolve path aliases, and instead uses package.json (reference). This Parcel v2 plugin enables typescript path alias resolution as you would normally expect with webpack or otherwise. As a bonus, intellisense will continue to provide suggestions from your tsconfig.

This plugin is experimental until Parcel V2 is released. Use in production with heavy caution. Updated for beta 3.1 release.

Installation (~3.1kB minified, 0 dependencies)

  • yarn add -D parcel-resolver-tspaths

    or

    npm install --save-dev parcel-resolver-tspaths

  • Ensure all parcel packages are set to minimum version ^2.0.0-beta.2 and that Parcel is configured for Typescript.

  • In your .parcelrc, be sure to properly extend the default config and add the plugin to your resolvers like so:

    "extends": "@parcel/config-default",
    "resolvers": ["...", "parcel-resolver-tspaths"],
    "transformers": {
      "*.{ts,tsx}": ["@parcel/transformer-typescript-tsc"]
    },
    "validators": {
      "*.{ts,tsx}": ["@parcel/validator-typescript"]
    },
    

And that's it. Note: the order of resolvers is sequential, and I highly recommend keeping this resolver after the base resolvers.

Caveats

  • Hot reloading is broken in files resolved through aliases, because Parcel's HMR implementation does not account for resolvers. You can follow this issue here.

  • This plugin does not support Typescript aliases while importing non-code assets, but this is being considered for future development.

    For example:

    import logo from 'url:@myassets/image/logo.svg';
    
  • Please file an issue if you notice any bugs. Thanks!

Development

Clone this repo anywhere, then run yarn && yarn link in the project root.

In any parcel app, run yarn && yarn link parcel-resolver-tspaths. Then follow normal build procedures. Real tests coming soon.

If you run into issues viewing debug output, you can see all raw output by running yarn test |& cat (Mac/Linux users only).