x-cmd-pkg | bun - 快速的多合一 JavaScript 运行时

2023-12-31 09:57:52

简介

Bun 是一个基于 JavaScriptCore 使用 Zig 编程语言构建的 JavaScript 运行时,于 2021 年由 Jarred Sumner 创造,目标是为用户提供一个效率更高的 Node.js 替代选择方案。

  1. 速度:相比于 Node,有着更快的启动速度以及更小内存占用。
  2. Node 兼容
    1. Bun 以原生代码的方式直接实现了数百个 Node.js 内置库,包括 fspathBuffer 等。
    2. 从包管理工具,测试构建,执行器,Bun都追求与 Node.js 及其生态的兼容性。
  3. TypeScript:Bun 可以像运行普通 JavaScript 文件一样直接运行 .ts.tsx 文件,但不会进行类型检查。

首次用户

  1. 使用 x bun 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 bun 命令常用功能的 demo 示例,可以帮你快速上手 bun 。

  3. 使用案例:

    bun-1min-cn

    # 支持 TS 和 JSX 开箱即用
    $ x bun run hello.ts
    $ x bun run process-argv.js hello world
    
    # Bun 附带了一个内置的快速测试器
    $ x bun test
    
    # Bun 有内置打包工具
    $ x bun build ./hello-app/index.tsx --outdir ./out
    
    # 使用 bunx 从 npm 自动安装和运行包
    $ x bun x cowsay "Hello, world"
    
    # 可以用作包管理工具
    x bun install jest
    x bun remove jest
    

技术特点

  1. Bun 采用 zig 这门新型的底层语言进行开发,以效率为第一目标。
  2. 包管理工具 (bun install):与 npm 包管理工具兼容,有开箱即用 workspaces 支持,且的得益于全局安装缓存与二进制的锁文件,在每个操系统中都有极快的依赖安装速度。
  3. 代码测试 (bun test):内置兼容 Jest 语法,模拟 Dom 与 浏览器 API,Watch 监听模式与快照测试等测试套件。
  4. 代码构建 (bun build):内置打包构建工具 (bundle)
  5. 包执行器 (bun x):相当于 npx 无需全局安装或添加项目依赖,快速运行可执行的远程软件包,且得益于 Bun 出色的启动速度,可快速运行可执行软件包来达到我们的功能目的。

竞品

  1. deno 是一个由 Node 原作者采用 Rust 开发、与bun的定位基本一致的产品,其开发时间更早,生态相对更成熟。x-cmd 也引入了 deno,有兴趣的读者可以参考 x-cmd pkg deno
  2. 传奇程序员 Fabric Bellard 开发的 QuickJS,是一个非常小巧(大部分 release 的压缩包都小于1MB)的 JavaScript 引擎。该引擎只提供 ES2020 的兼容语法以及基本的内置库。有兴趣的读者可以到其官网了解 – Fabric Bellard 还开发了 ffmpeg,qemu,Tiny C Compiler,JSLinux 等强大而有趣的产品,是一个非常值得关注的程序员。

进一步阅读

文章来源:https://blog.csdn.net/edwinjhlee/article/details/135245687
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。