💻
How are you using Babel?
@babel/register or @babel/node
Input code
a.js
require("@babel/register")({
extensions: [".ts"],
ignore: ["./b.ts"],
presets: ["@babel/preset-typescript"],
});
require("./b.ts");
b.ts
Configuration file name
No response
Configuration
No response
Current and expected behavior
I want to use @babel/register for only some of my TypeScript files and use Node’s built-in type stripping for others, as configured by ignore or only. But it doesn’t work: Babel disables Node’s built-in type stripping for ignored files.
$ node a.js
/tmp/test/b.ts:1
let n: number;
^
SyntaxError: Unexpected token ':'
at wrapSafe (node:internal/modules/cjs/loader:1743:18)
at Module._compile (node:internal/modules/cjs/loader:1786:20)
at Module._compile (/tmp/test/node_modules/pirates/lib/index.js:129:24)
at node:internal/modules/cjs/loader:1943:10
at Object.newLoader [as .ts] (/tmp/test/node_modules/pirates/lib/index.js:134:7)
at Module.load (node:internal/modules/cjs/loader:1533:32)
at Module._load (node:internal/modules/cjs/loader:1335:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.require (node:internal/modules/cjs/loader:1556:12)
at require (node:internal/modules/helpers:152:16)
at Object.<anonymous> (/tmp/test/a.js:7:1)
at Module._compile (node:internal/modules/cjs/loader:1812:14)
at Object..js (node:internal/modules/cjs/loader:1943:10)
at Module.load (node:internal/modules/cjs/loader:1533:32)
at Module._load (node:internal/modules/cjs/loader:1335:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5)
at node:internal/main/run_main_module:33:47
Node.js v24.14.0
Environment
System:
OS: Linux 6.19 cpe:/o:nixos:nixos:26.05 26.05 (Yarara)
Binaries:
Node: 24.14.0 - /home/anders/.nix-profile/bin/node
Yarn: 1.22.22 - /home/anders/.nix-profile/bin/yarn
npm: 11.9.0 - /home/anders/.nix-profile/bin/npm
pnpm: 10.30.2 - /home/anders/.nix-profile/bin/pnpm
bun: 1.3.10 - /home/anders/.nix-profile/bin/bun
npmPackages:
@babel/preset-typescript: ^7.28.5 => 7.28.5
@babel/register: ^7.28.6 => 7.28.6
Possible solution
No response
Additional context
No response
💻
How are you using Babel?
@babel/register or @babel/node
Input code
a.jsb.tsConfiguration file name
No response
Configuration
No response
Current and expected behavior
I want to use
@babel/registerfor only some of my TypeScript files and use Node’s built-in type stripping for others, as configured byignoreoronly. But it doesn’t work: Babel disables Node’s built-in type stripping for ignored files.Environment
Possible solution
No response
Additional context
No response