Adds Typescript support to Bud
Install @roots/bud-typescript to your project.
Yarn:
yarn add @roots/bud-typescript --dev
npm:
npm install @roots/bud-typescript --save-dev
General ts configuration is handled using a standard tsconfig.json in your project root. See the TypeScript docs on tsconfig.json for more information.
There is a base tsconfig available for you to extend:
{
"extends": "@roots/bud-typescript/tsconfig/tsconfig.json"
}
If you are authoring your config file in TypeScript you must use the ts-bud
command instead of bud
.
By default TypeScript files will only be compiled to JS during builds. If you also want typechecking, you can enable it in your bud configuration:
bud.typescript.typecheck.enable();
You may wish to configure typechecking only in production so that your development experience stays snappy:
bud.isProduction && bud.typescript.typecheck.enable();
By default, @roots/bud-typescript
will pass code to @roots/bud-babel
for further transforms.
To disable babel and only use tsc:
bud.typescript.useBabel(false);
If you aren't using babel make sure your tsconfig.json
is set up appropriately.
In particular, React users likely want to set jsx
to react
.
React refresh should work out of the box with zero configuration required.
- If you are using @roots/bud-react
the
react-refresh-typescript
transformer will automatically be used. - If you are using @roots/bud-babel the babel transformer
will be used instead of the
react-refresh-typescript
.
Contributions are welcome from everyone.
We have contribution guidelines to help you get started.
@roots/bud-typescript is licensed under MIT.
Keep track of development and community news.
- Join us on Roots Slack by becoming a GitHub sponsor
- Participate on the Roots Discourse
- Follow @rootswp on Twitter
- Read and subscribe to the Roots Blog
- Subscribe to the Roots Newsletter
bud.js is an open source project and completely free to use.
However, the amount of effort needed to maintain and develop new features and projects within the Roots ecosystem is not sustainable without proper financial backing. If you have the capability, please consider sponsoring Roots.