📦 x-cmd pkg | bun - JavaScript 开发者的全能工具箱,Node.js 的替代方案

276 阅读2分钟

简介

bun 是由 Jarred SumnerZig 开发的面向 JavaScript 和 TypeScript 的全能工具箱,拥有与 Node.js、npm、npx、Rollup、Jest 等工具同等的功能。

它能作为一个 JavaScript 运行时,内置打包、测试、包管理等功能,兼容 Node.js 生态,旨在替代 Node.js

相比于 Node.js,bun 内置多种开发工具,有着更快的启动速度以及更小的内存占用,能直接运行 .ts.tsx 文件,且整体打包为了单一可执行文件,大大简化了开发环境的设置。

bun.cn.gif

快速上手

安装

eval "$(curl https://get.x-cmd.com)"        # 安装 x-cmd
x env use bun                               # 使用 x-cmd 安装 bun

使用

  1. 运行 JavaScript 或 TypeScript 脚本:

    bun run ./hello.js
    bun run ./hello-world.tsx
    echo "console.log('Hello')" | bun run -
    
  2. 使用 package.json 中定义的命令,如 package.json 中定义了 clean 和 dev:

    {
       // package.json
       "scripts": {
          "clean": "rm -rf dist && echo 'Done.'",
          "dev": "bun server.ts"
       }
    }
    
    bun run dev
    bun run clean
    
  3. 安装包和管理项目依赖,类似于 npm:

    # 安装 cowsay 包到当前项目环境中
    bun install cowsay
    
    # 安装 cowsay 包到全局环境中
    bun install -g cowsay
    
    # 根据 bun.lockb 或 package.json 文件中的依赖列表下载和安装所有依赖
    bun install
    
    # 删除依赖项
    bun remove cowsay
    
  4. 执行 npm 包二进制文件,类似于 npx:

    # bunx 是 bun x 的别名,安装 bun 时会自动添加
    bunx cowsay "Hello world"
    

功能特点

  1. 全能工具箱:整体打包为了单一可执行文件,涵盖了运行时、打包、测试、包管理等多种功能,兼容 Node.js 生态,能直接运行 .ts.tsx 文件。
  2. 高性能:基于 JavaScriptCore 并使用 Zig 语言构建,启动速度更快,内存占用更少。
  3. 安装包的速度更快:根据 Bun 官方的测试,bun 安装 JavaScript 包的速度比 npm 快 25 倍。

竞品和相关作品

  1. Node.js:用 C++、JavaScript 和 C 开发的 JavaScript 运行时,是主流的 JavaScript 运行时环境。
  2. deno:Ryan Dahl(Node.js 的原作者)用 Rust 开发的 JavaScript、TypeScript 和 WebAssembly 运行时,是 Node.js 的替代方案,能兼容 Node.js。
  3. npm/npx:主流的 JavaScript 包管理器,也是 Node.js 默认捆绑和使用的包管理器。npx 是用于执行 npm 包二进制文件的工具,现已集成至 npm 中。
  4. Rollup:JavaScript 模块捆绑器,用于将项目文件打包成可部署的格式,如库或应用程序。
  5. Jest:JavaScript 测试框架,能帮助用户快速编写和运行测试用例,简化测试流程。

进一步阅读

  • bun 源代码 - bun 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 bun 和参与社区贡献。
  • bun 官方文档 - 提供最新版的文档、常见使用方式和代码示例




更多内容请查阅 : pkg/bun

转载请标明原文链接www.x-cmd.com/pkg/bun


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法