@nodejs-loaders/tsx
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

Nodejs Loaders: JSX / TSX

@node.js loaders logo

npm version unpacked size compatible node version(s)

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.

Dependents (0)

Package Sidebar

Install

npm i @nodejs-loaders/tsx

Weekly Downloads

604

Version

1.1.1

License

ISC

Unpacked Size

10.6 kB

Total Files

11

Last publish

Collaborators

  • jakobjingleheimer
  • augustinmauroy