主题
支持的模块格式
Bun 是一个现代化的 JavaScript 运行时,支持多种常见的模块格式。它不仅支持传统的 CommonJS 模块,还原生支持 ES 模块(ESM),并能高效处理 TypeScript 模块。Bun 的模块解析机制使得开发者可以方便地在多种模块系统中进行开发,并且在构建过程中保持高效。
1. CommonJS(CJS)
Bun 完全兼容 CommonJS 格式的模块,允许开发者在 Bun 环境中使用传统的 require()
和 module.exports
语法。无论是老旧的 Node.js 库,还是基于 CommonJS 的模块,Bun 都能高效加载和运行。
js
// CommonJS 示例
const express = require('express');
const app = express();
2. ES 模块(ESM)
Bun 也原生支持 ES 模块(ESM),并且是其推荐的模块格式。你可以使用 import
和 export
语法,并享受原生支持的模块加载方式。Bun 通过高效的解析和执行,使得使用 ESM 的项目更加流畅和高效。
js
// ESM 示例
import express from 'express';
const app = express();
3. TypeScript 模块
Bun 完全支持 TypeScript 模块,可以直接运行 .ts
文件,而无需进行额外的转译。开发者可以在 TypeScript 项目中使用 Bun 来快速执行代码和进行调试。
ts
// TypeScript 示例
import express from 'express';
const app = express();
4. JSON 模块
Bun 还支持直接导入 JSON 文件作为模块。你可以通过 import
语法直接加载 JSON 数据,并将其作为模块的输出。
js
import data from './data.json';
console.log(data);
5. 动态导入
Bun 同样支持动态导入,允许在运行时根据条件动态加载模块,这对于按需加载和懒加载场景特别有用。
js
if (someCondition) {
const { default: module } = await import('./module.js');
}
总结
Bun 提供了对多种模块格式的全面支持,包括 CommonJS、ESM、TypeScript 模块以及 JSON 文件模块。这使得开发者可以在 Bun 环境中灵活地使用不同的模块系统,享受高效的构建和执行体验。