Deno 2.4
10 months ago
- #Deno
- #JavaScript
- #TypeScript
- Deno 2.4 重新引入了 `deno bundle` 命令,用于创建单文件 JavaScript 包,支持带有 npm 和 JSR 依赖的服务器端与浏览器平台。
- 新功能:通过 `--unstable-raw-imports` 标志直接导入文本和二进制数据到 JavaScript 模块,简化资源管理。
- 内置 OpenTelemetry 支持现已稳定,无需 `--unstable-otel` 标志即可实现日志、指标和追踪的自动插桩。
- 新增 `--preload` 标志,可在主脚本执行前运行代码,适用于修改全局变量或预加载数据。
- 新的 `deno update` 子命令通过将 npm 和 JSR 依赖更新至最新版本来简化依赖管理。
- 增强的覆盖率收集功能 `deno run --coverage` 可生成更全面的测试套件覆盖率报告(包括子进程)。
- 新增 `DENO_COMPAT=1` 环境变量,通过启用多项兼容性标志优化基于 `package.json` 项目的开发体验。
- 权限变更包括:`--allow-net` 支持子网通配符和 CIDR 范围,新增 `--deny-import` 标志以阻断特定主机。
- 支持 npm 包的条件导出,可根据用户提供的条件(如 `react-server`)动态选择导出内容。
- `deno run` 现支持裸说明符作为入口点,配合 `deno.json` 中定义的导入规则简化脚本执行。
- `deno fmt` 新增对 XML、SVG 和 `.mustache` 文件的格式化,并增强对 `tsconfig.json` 选项的支持。
- 简化 Node 全局变量可用性,`Buffer`、`global`、`setImmediate` 和 `clearImmediate` 现可在任意位置访问。
- 改进 Node.js API 支持,包括实现 `fs.glob`、`process.loadEnvFile` 等,多个 Node 模块兼容性达 95% 以上。
- 语言服务器(LSP)增强:优化 `deno.config` 处理、Jupyter 单元格支持和自动导入解析。
- 其他改进:支持通过 Unix 和 Vsock 套接字进行 `fetch`,优化 Jupyter 内核管理,`deno bench` 和 `deno coverage` 支持 Markdown 兼容表格。