@nodejs-loaders/tsx
v1.1.2
Published
Extend node to support JSX & TSX via customization hooks.
Readme
Nodejs Loaders: JSX / TSX
Usage
$ npm i -D @nodejs-loaders/tsx$ node --import @nodejs-loaders/tsx main.jsSee README.md in the repository's root for more details.
Environment: test
Compatible APIs: module.register
[!TIP] If you are using only TypeScript (not tsx), consider using Node.js's builtin type stripping. This can handle it, but the builtin may provide better/more consisent results.
This loader facilitates running tests against JSX or TSX components. It looks for a esbuild.config.mjs in the project root (the current working directory); if your config lives in a different location, create a symlink to it from your project root. Only options for esbuild's "transform" API are valid (esbuild handles looking for a tsconfig). When none is found, it uses a few necessary default.
This loader does not handle TypeScript's file extension nonsense. Import specifiers must use the actual file extension of the file actually on disk:
./
├ …
└ foo.ts💥 import foo from './foo.js';
✅ import foo from './foo.ts';
If your project contains erroneous specifiers like above, use the correct-ts-specifiers codemod to fix your source-code.
.jsx.mts.ts.tsx
Alternatives
- Node's built-in support (via amaro).
@nodejs-loader/tsxcurrently supports more than Amaro. - SWC register
- ts-node, it's bigger because they support old node versions. It's also based on typescript.
- tsx, it's bigger because they inlude more features such as a cli. It's also based on esbuild.
