JSPM

@nodejs-loaders/tsx

1.1.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1090
  • Score
    100M100P100Q103611F
  • License ISC

Extend node to support JSX & TSX via customization hooks.

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

@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.