compiled icon indicating copy to clipboard operation
compiled copied to clipboard

Babel plugin can't be used in a TS monorepo before building the code

Open 1999 opened this issue 1 year ago • 1 comments

Describe the bug Our monorepo contains TS files. Babel plugin expects the required/imported files to exist when it is being used. However, we don't run the "build" command, therefore we don't have transpiled JS files.

The actual error message in our case looks like this:

     /Users/<username>/atlassian/afm/<path>/notification-component.tsx: Cannot find module '@atlaskit/tokens' from '/Users/<username>/atlassian/afm/<project>/node_modules/@compiled/babel-plugin/dist/utils'

To Reproduce Steps to reproduce the behavior:

  1. TS Monorepo without built JS files
  2. Unit tests using "babel-jest"
  3. @compiled/babel-plugin in babel.config.json

Expected behavior No error

1999 avatar Aug 01 '24 03:08 1999

Looks like there's a solution: using a "resolver" option for the plugin which hasn't been documented yet. I will try to build a sample resolver and see if it works for us.

"plugins": [
		["@compiled/babel-plugin", {
			"parserBabelPlugins": ["typescript", "jsx"],
			"extensions": [".js", ".jsx", ".ts", ".tsx"],
			"resolver": "./compiled-resolver.js"
		}]
	]

1999 avatar Aug 01 '24 05:08 1999