Bun v0.6.0 发布,Zig 编写的 JavaScript 运行时
根据官方说法,Bun 0.6.0 版本是迄今为止 Bun 最大的一个更新版本。
最新版本的 Bun 现在有一个内置的 JavaScript 和 TypeScript 捆绑器和简化器,可以用它来捆绑前端应用程序或将你的代码捆绑成一个独立的可执行文件。
Bun 0.6.0 也一直在忙着提高性能和修复 bug:writeFile()
在 Linux 上的速度提高了 20%、对Node.js 兼容性和 Web API 兼容性进行了大量的 bug 修复、支持 TypeScript 5.0 语法,并对bun install
进行了各种修复。
新的 JavaScript bundler & minifier
这个版本的重点是 Bun 的新 JavaScript Bundler(捆绑器),但捆绑器只是一个更大项目的开始。在接下来的几个月里,Bun 将发布Bun.App
—— 一个 "超级 API",将 Bun 的 native-speed 捆绑器、HTTP 服务器和文件系统路由缝合成一个整体。
可以使用bun build
CLI 命令或新的Bun.build()
JavaScript API 来使用。
JavaScript
Bun.build({ entrypoints: ["./src/index.tsx"], outdir: "./build", minify: true, // ... });
CLI
bun build ./src/index.tsx --outdir ./build --minify
独立的可执行文件
现在你可以用bun build
来创建独立的可执行文件。
bun build --compile ./foo.ts
这让你可以将你的应用程序作为一个可执行文件发布,而不需要用户安装 Bun。
你也可以将其缩小,以提高大型应用程序的启动性能:
bun build --minify --compile ./three.ts [32ms] minify -123 KB (estimate) [50ms] bundle 456 modules [107ms] compile three
这是由 Bun 的新 JavaScript 捆绑器和简化器提供的。
import.meta.main
现在你可以使用import.meta.main
来检查当前文件是否是启动 Bun 的入口点。这对 CLI 很有用,可以确定当前文件是否是启动应用程序的。
例如,如果你有一个名为index.ts
的文件:
index.ts
console.log(import.meta.main);
然后你运行它:
$ bun ./index.ts true
但如果你导入它:
import "./index.ts";
并运行它:
$ bun ./other.ts false
对bun test
的改进
bun test
现在报告运行测试的时间describe.skip
已经实现- 实现了
expect().toBeEven()
和expect().toBeOdd()
在 Linux 上实现更快的 fs.writeFile
fs.writeFile 在 Linux 上处理大文件的速度提高了 20%
转译器改进
这个版本还引入了许多对转译器的改进。以下是其中的一些亮点:
- 解析器支持 TypeScript 5.0。
- 解析器支持导入属性。
- 一些 npm 包出现了
ReferenceError: Cannot access uninitialized variable
的错误,这是由于 Bun 的转译器中存在循环导入的错误。这一点已被修复。 - 支持
// @jsx
、// @jsxImportSource
和// @jsxFragment
注释 - ……
更多详情可查看:https://bun.sh/blog/bun-v0.6.0

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SQLite 3.42.0 发布
SQLite 是一个 C 语言库,实现了一个小型、快速、独立、高可靠性、全功能的 SQL 数据库引擎。SQLite 是世界上使用最多的数据库引擎。SQLite 的源代码属于公共领域,每个人都可以免费使用,用于任何目的。 SQLite 3.42.0 正式发布,更新内容如下: 增加 FTS5 secure-delete 命令。当内容被删除时,这个选项会使所有取证分析从 FTS5 的倒置索引中被删除。 增强 JSON SQL 函数以支持 JSON5 扩展 现在允许对 sqlite3_config() 的 SQLITE_CONFIG_LOG 和 SQLITE_CONFIG_PCACHE_HDRSZ 调用发生在 sqlite3_initialize() 之后。 新增了 sqlite3_db_config() 选项: SQLITE_DBCONFIG_STMT_SCANSTATUS 和 SQLITE_DBCONFIG_REVERSE_SCANORDER。 查询计划器的改进: 默认启用 "count-of-view" 优化。 避免在子查询中计算未使用的列。 对下推优化的改进 对 CLI 的改进: 增加...
- 下一篇
每日一博 | 前端开发之函数式编程实践
作者:京东科技牛志伟 函数式编程简介 常见应用场景 1、ES6中的map、filter、reduce等函数 [1,2,3,4,5].map(x => x * 2).filter(x => x > 5).reduce((p,n) => p + n); 2、React类组件 -> 函数式组件+hooks、Vue3中的组合式API 3、RxJS、Lodash和Ramda等JS库 4、中间件/插件,如Redux中的applyMiddleware中间件实现 const store = applyMiddleware(...middlewares)(createStore)(reducer, initialState) 什么是函数式编程 函数式编程是一种编程范式,它将程序抽象为函数和数据结构,通过函数调用来实现程序的功能,并且函数可以作为参数传递给其他函数。 在 JavaScript 中,函数式编程可以实现面向对象编程的一些功能,比如抽象、封装、继承和多态等。 它还可以使用高阶函数、柯里化、组合和延迟计算来实现函数式编程的功能。 函数式编程有哪些特性...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7