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

fix: support composite in tsconfig.json #55

Merged
merged 7 commits into from
Mar 7, 2024

Conversation

privatenumber
Copy link
Owner

@privatenumber privatenumber commented Mar 7, 2024

closes #54

halostatue and others added 4 commits March 5, 2024 09:30
We are using pkgroll with Typescript monorepos (managed by pnpm
workspaces) and project references. The latter requires
`compilerOptions.composite = true` in referenced projects for most `tsc`
invocations. If you set `references` without `compilerOptions.composite
= true`, `tsc` will fail, indicating that `composite` needs to be set.

When I run `pkgroll` and have `composite` set, I get TS6307 for every
file included from `src/index.ts`. rollup-plugin-dts does not handle
`composite` (see Swatinem/rollup-plugin-dts#127, which was closed
without fix or explanation). I looked at several other related tools
(rollup-plugin-typescript2, rollup-plugin-ts, others mentioned in
Swatinem/rollup-plugin-dts) and could not get any of them working to
build *just* the DTS files (rollup-plugin-typescript2 was the most
promising, but I could not get it working in the time that I allotted
for this investigation).

Going back to rollup-plugin-dts, we find the `compilerOptions` option,
and I tried explicitly setting `composite: false`, which allows my type
files to build again without errors.

I don't think that this is the *correct* fix; ideally, rollup-plugin-dts
would be fixed to better handle composite projects *or* would override
`composite` at all times. An alternative change, although much more
invasive to pkgroll, would be to have pkgroll accept an *alternate*
`tsconfig.json` as a parameter:

```console
$ pkgroll --tsconfig tsconfig.pkgroll.json
```

In the short term, this has eliminated the build issue that I have been
seeing, and it may be sufficient to resolve this until a better fix can
be determined in some way, whether by a `--tsconfig` parameter, upstream
fixes, or changing to a different bundler plugin for type declaration
plugins.

This issue can be seen at:

https://github.com/halostatue/pkgroll-monorepo-types-issue
@privatenumber privatenumber marked this pull request as ready for review March 7, 2024 07:02
@privatenumber privatenumber changed the title Fake support composite fix: support composite in tsconfig.json Mar 7, 2024
@privatenumber privatenumber merged commit 743f26f into develop Mar 7, 2024
2 checks passed
@privatenumber privatenumber deleted the fake-support-composite branch March 7, 2024 07:03
@privatenumber
Copy link
Owner Author

🎉 This PR is included in version 2.0.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

@halostatue
Copy link
Contributor

Spectacular and thank you for the quick response.

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

Successfully merging this pull request may close these issues.

2 participants