Logo of jiti

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。倾情打造 💖