-
Notifications
You must be signed in to change notification settings - Fork 47.6k
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
build: add support to the rollup build for building typescript packages #32393
build: add support to the rollup build for building typescript packages #32393
Conversation
Comparing: e670e72...8da2860 Critical size changesIncludes critical production bundles, as well as any change greater than 2%:
Significant size changesIncludes any change greater than 0.2%: (No significant changes) |
7706916
to
7f7818f
Compare
7f7818f
to
d33cf75
Compare
scripts/rollup/build.js
Outdated
}; | ||
}, | ||
}, | ||
bundle.tsconfig |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bundle.tsconfig | |
bundle.tsconfig != null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's keep any comparisons as specific as possible
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I took a look at the built files and I noticed that the d.ts files were missing, could you check and see?
This is because we haven't added the {
+ name: 'eslint-plugin-react-hooks',
- bundleTypes: [NODE_DEV, NODE_PROD],
+ bundleTypes: [NODE_DEV, NODE_PROD, CJS_DTS],
moduleType: ISOMORPHIC,
- entry: 'eslint-plugin-react-hooks',
+ entry: 'eslint-plugin-react-hooks/src/index.ts',
global: 'ESLintPluginReactHooks',
minifyWithProdErrorCodes: false,
wrapWithModuleBoundaries: false,
externals: [],
+ tsconfig: './packages/eslint-plugin-react-hooks/tsconfig.json',
}, |
This change adds support to the rollup build script for building packages with typescript source. In order for a bundle to be picked up by the new flow, the bundle definition should have a `tsconfig` property with a path to the project's tsconfig. There's also two new bundle types that such packages can request to be built: `ESM_DTS` and `CJS_DTS`, which will create the corresponding `.d.ts` bundle.
This change updates the base jest config to use `babel-jest` with the typescript preset to transform `.ts` files. The existing `preprocessor`, which intercepts ts files, appears to be pretty old and wasn't implemented with entire packages of typescript source in mind.
d33cf75
to
b0b88b2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
…pe declarations (#32240) <!-- Thanks for submitting a pull request! We appreciate you spending the time to work on these changes. Please provide enough information so that others can review your pull request. The three fields below are mandatory. Before submitting a pull request, please make sure the following is done: 1. Fork [the repository](https://github.com/facebook/react) and create your branch from `main`. 2. Run `yarn` in the repository root. 3. If you've fixed a bug or added code that should be tested, add tests! 4. Ensure the test suite passes (`yarn test`). Tip: `yarn test --watch TestName` is helpful in development. 5. Run `yarn test --prod` to test in the production environment. It supports the same options as `yarn test`. 6. If you need a debugger, run `yarn test --debug --watch TestName`, open `chrome://inspect`, and press "Inspect". 7. Format your code with [prettier](https://github.com/prettier/prettier) (`yarn prettier`). 8. Make sure your code lints (`yarn lint`). Tip: `yarn linc` to only check changed files. 9. Run the [Flow](https://flowtype.org/) type checks (`yarn flow`). 10. If you haven't already, complete the CLA. Learn more about contributing: https://reactjs.org/docs/how-to-contribute.html --> ## Summary This change converts the eslint hooks plugin to typescript, which also allows us to include type declarations in the package, for those using [typescript eslint configs](https://eslint.org/blog/2025/01/eslint-v9.18.0-released/#stable-typescript-configuration-file-support). ### Constituent changes that should land before this one - [x] ~#32276 - [x] #32279 - [x] #32283 - [x] #32393 - [x] #32396 Closes #30119 --------- Co-authored-by: Lauren Tan <[email protected]>
…pe declarations (#32240) <!-- Thanks for submitting a pull request! We appreciate you spending the time to work on these changes. Please provide enough information so that others can review your pull request. The three fields below are mandatory. Before submitting a pull request, please make sure the following is done: 1. Fork [the repository](https://github.com/facebook/react) and create your branch from `main`. 2. Run `yarn` in the repository root. 3. If you've fixed a bug or added code that should be tested, add tests! 4. Ensure the test suite passes (`yarn test`). Tip: `yarn test --watch TestName` is helpful in development. 5. Run `yarn test --prod` to test in the production environment. It supports the same options as `yarn test`. 6. If you need a debugger, run `yarn test --debug --watch TestName`, open `chrome://inspect`, and press "Inspect". 7. Format your code with [prettier](https://github.com/prettier/prettier) (`yarn prettier`). 8. Make sure your code lints (`yarn lint`). Tip: `yarn linc` to only check changed files. 9. Run the [Flow](https://flowtype.org/) type checks (`yarn flow`). 10. If you haven't already, complete the CLA. Learn more about contributing: https://reactjs.org/docs/how-to-contribute.html --> ## Summary This change converts the eslint hooks plugin to typescript, which also allows us to include type declarations in the package, for those using [typescript eslint configs](https://eslint.org/blog/2025/01/eslint-v9.18.0-released/#stable-typescript-configuration-file-support). ### Constituent changes that should land before this one - [x] ~#32276 - [x] #32279 - [x] #32283 - [x] #32393 - [x] #32396 Closes #30119 --------- Co-authored-by: Lauren Tan <[email protected]> DiffTrain build for [5adf402](5adf402)
Contributing to #32240 this change adds support to the rollup build script for building packages with typescript source. In order for a bundle to be picked up by the new flow, the bundle definition should have a
tsconfig
property with a path to the project's tsconfig.There's also two new bundle types that such packages can request to be built:
ESM_DTS
andCJS_DTS
, which will create the corresponding.d.ts
bundle.