atlassian-labs / compiled

A familiar and performant compile time CSS-in-JS library for React.
https://compiledcssinjs.com
Apache License 2.0
1.99k stars 67 forks source link

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

Open 1999 opened 3 months ago

1999 commented 3 months ago

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 commented 3 months ago

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"
        }]
    ]