jiti
Node.js 的运行时 TypeScript 和 ESM 支持
Node.js 的运行时 TypeScript 和 ESM 支持。
这是 jiti v1 的支持分支。请查看 jiti/main 获取最新版本,并查看 unjs/jiti#174 获取路线图。
功能特性
- 无缝的 TypeScript 和 ESM 语法支持
- ESM 和 CommonJS 之间的无缝互操作性
- 替换
require
的同步 API - 超轻量级,零依赖
- 智能语法检测,避免额外转换
- CommonJS 缓存集成
- 文件系统转译硬缓存
- V8 编译缓存
- 自定义解析别名
用法
程序化
const jiti = require("jiti")(__filename);
jiti("./path/to/file.ts");
您也可以将选项作为第二个参数传递
const jiti = require("jiti")(__filename, { debug: true });
CLI
jiti index.ts
# or npx jiti index.ts
注册 require 钩子
node -r jiti/register index.ts
或者,您可以通过程序化方式将 jiti
注册为 require 钩子
const jiti = require("jiti")();
const unregister = jiti.register();
选项
调试
- 类型:布尔值
- 默认值:
false
- 环境变量:
JITI_DEBUG
启用调试以查看哪些文件被转译
缓存
- 类型:布尔值 | 字符串
- 默认值:
true
- 环境变量:
JITI_CACHE
使用转译缓存
如果设置为 true
,将使用 node_modules/.cache/jiti
(如果存在) 或 {TMP_DIR}/node-jiti
esmResolve
- 类型:布尔值 | 字符串
- 默认值:
false
- 环境变量:
JITI_ESM_RESOLVE
使用 ESM 解析算法支持 import
条件。
转换
- 类型:函数
- 默认:Babel (惰性加载)
转换函数。更多详情请参阅 src/babel
源映射
- 类型:布尔值
- 默认
false
- 环境变量:
JITI_SOURCE_MAPS
为转换后的源代码添加内联源映射,以改善调试体验。
interopDefault
- 类型:布尔值
- 默认值:
false
在顶级返回模块的 .default
导出。
别名
- 类型:对象
- 默认:-
- 环境变量:
JITI_ALIAS
用于解析 ID 的自定义别名映射。
原生模块
- 类型:数组
- 默认:'typescript`
- 环境变量:
JITI_NATIVE_MODULES
始终对其使用原生 require 的模块列表(在 node_modules
中)。
转换模块
- 类型:数组
- 默认:
- 环境变量:
JITI_TRANSFORM_MODULES
无论语法如何,都要转换的模块列表(在 node_modules
中)。
实验性 Bun
- 类型:布尔值
- 默认:如果存在
process.versions.bun
(Bun 运行时)则启用 - 环境变量:
JITI_EXPERIMENTAL_BUN
为转换启用实验性原生 Bun 支持。
开发
- 克隆此仓库
- 使用
corepack enable
启用 Corepack - 使用
pnpm install
安装依赖项 - 运行
pnpm dev
- 运行
pnpm jiti ./test/path/to/file.ts
许可
MIT。倾情打造 💖