Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v5 experimental extractor esbuild "packages" config #1973

Open
AndrewIngram opened this issue Jul 8, 2024 · 2 comments
Open

v5 experimental extractor esbuild "packages" config #1973

AndrewIngram opened this issue Jul 8, 2024 · 2 comments

Comments

@AndrewIngram
Copy link

I was trying out the experimental extractor in the v5 preview and noticed it was missing a lot of strings that my own bespoke extractor was picking up. It turns out the difference is that you've set the packages config to external, which was causing all our monorepo packages to get excluded.

Fortunately, we can override the esbuild config, so we can just unset the packages config. But i'm flagging this as a bug, since I would imagine you want to support monorepos out of the box.

@timofei-iatsenko
Copy link
Collaborator

Do you use a monorepo with a "real" packages linked using node_modules?

Every monorepo is different, there might be integrated monorepo's, where packages are bound using tsconfig path aliases and monorepo with standalone packages.

The idea behind setting "packages: external" was to support integrated monorepos out of the box, since esbuild will resolve aliases before checking is path external.

But for "packaged" monorepo things is much more complicated, I believe even in previous setup it didn't work out of the box and you had to specify some additional settings to make it work.

There no recipe which will work out of the box for all cases, thats why I allowed to override esbuild config. I also believe, may be mistakenly, that integrated approach is more popular since it's more advertised from popular monorepo tools, such as turborepo and nx.

So i'm not sure is that a bug or not.

@AndrewIngram
Copy link
Author

We're using pnpm + turborepo. Monorepo packages are exposed as symlinks in each workspace's node_modules directory, rather than using aliases. As far as I can tell we're not doing anything bespoke with respect to how it's setup, but I could be wrong.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants