Package Exports
- @nodejs-loaders/tsx
- @nodejs-loaders/tsx/tsx.mjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@nodejs-loaders/tsx) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Nodejs Loaders: JSX / TSX
Usage
$ npm i -D @nodejs-loaders/tsx
$ node --import @nodejs-loaders/tsx main.js
See 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.
Supported file extensions
.jsx
.mts
.ts
.tsx
Alternatives
- Node's built-in support (via amaro).
@nodejs-loader/tsx
currently 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.