Bun的最新版本1.0.14带来了对这个JavaScript运行环境的重大改进和新功能。一个重要的新增功能是Bun.Glob
,这是一个用于匹配文件和字符串的快速API,使用glob模式。这个功能比流行的Node.js库(如fast-glob
或micromatch
)的类似功能快三倍。
此更新还解决了在执行bun install
时遇到的关键竞争条件问题。这个问题源于创建用于安装依赖项的临时文件名时的一个错误,偶尔会导致在同时提取多个版本的同一包时安装依赖失败。
此外,新版本改进了node_modules
中的TypeScript模块解析。虽然Bun通常先加载TypeScript文件,再加载JavaScript文件,以模仿tsc
的行为,但更新确保了当两者都存在时,node_modules
中会优先选择JavaScript文件。这一更改解决了某些npm包传送无法由转译器转译的TypeScript源文件的问题。
此外,Bun 1.0.14增强了构建失败时错误消息的可读性。它修复了一个之前只高亮显示错误的第一个字符的错误,减少了错误消息中不必要的换行,并使构建错误的样式与运行时错误的样式一致。
最后,更新改进了对不支持的ECMAScript模块(ESM)和CommonJS特性的错误检测和消息。在早期版本中,Bun依赖于JavaScriptCore的运行时错误消息,这有点令人困惑。新版本在构建时检测这些错误,提供更清晰、更有帮助的错误消息。