bun install

bun CLI 兼容 Node.js 的软件包管理器,旨在成为一款 npm、yarn 和 pnpm 的优秀替代品。它可以作为一个独立工具,在现有的 Node.js 项目中使用。

bun install

如果你的项目有一个 package.json,bun install 可以帮助你加快工作流程。

提速25倍——在任何 Node.js 项目中从 npm install 切换到 bun install,可以使你的安装速度提高25倍。 

 要安装项目的所有依赖项:

bun install

运行 bun install 将会:

  • 安装所有的 dependencies、devDependencies 和 optionalDependencies。Bun 默认会安装 peerDependencies。
  • 在适当的时候运行您项目的 {pre|post}install 和 {pre|post}prepare 脚本。出于安全原因,Bun不会执行已安装依赖项的生命周期脚本。
  • 在项目根目录下创建一个 bun.lockb 锁定文件。
记录日志

修改日志的冗余度:

bun install --verbose # debug logging
bun install --silent  # no logging
生命周期脚本

与其他 npm 客户端不同,Bun 不会为已安装的依赖项执行任意生命周期脚本,例如 postinstall。执行任意脚本会带来潜在的安全风险。

如果想要告诉 Bun 允许特定包的生命周期脚本,请将该包添加到 trustedDependencies

{
  "name": "my-app",
  "version": "1.0.0",
  "trustedDependencies": ["my-trusted-package"]
}

然后重新安装软件包。Bun 将读取此字段并运行 my-trusted-package 的生命周期脚本。

生命周期脚本将在安装过程中并行运行。要调整最大并发脚本数,请使用 --concurrent-scripts 标志。默认值是报告的 cpu 计数或 GOMAXPROCS 的两倍。

bun install --concurrent-scripts 5
工作区

Bun 支持 "workspaces"。有关完整的文档,请参阅 Package manager > Workspaces

在 package.json 中进行配置。

{
  "name": "my-app",
  "version": "1.0.0",
  "workspaces": ["packages/*"],
  "dependencies": {
    "preact": "^10.5.13"
  }
}
Overrides 和 Resolutions

Bun 在 package.json 中支持 npm 的 "overrides" 和 Yarn 的 "resolutions"

{
  "name": "my-app",
  "dependencies": {
    "foo": "^2.0.0"
  },
  "overrides": {
    "bar": "~4.4.0"
  }
}
安装全局包

要全局安装软件包,使用 -g/--global。通常,这用于安装命令行工具。

bun install --global cowsay # or `bun install -g cowsay`
cowsay "Bun!"
 ______
< Bun! >
 ------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
生产模式

要在生产模式下安装(即不使用 devDependencies 或 optionalDependencies):

bun install --production

对于可复用的安装,请使用 --frozen-lockfile。这将安装锁定文件中指定的每个软件包的确切版本。如果您的package.json不同意 bun.lockb 将退出并返回一个错误。锁定文件将不会更新。

bun install --frozen-lockfile

有关 Bun 的二进制锁定文件 bun.lockb 的更多信息,请参阅 Lockfile >包管理器

安装非 npm 包

Bun 支持从 Git、GitHub 和本地或远程托管的代码仓库安装依赖项。有关完整的文档,请参阅Package manager > Git, GitHub, and tarball dependencies

{
  "dependencies": {
    "dayjs": "git+https://github.com/iamkun/dayjs.git",
    "lodash": "git+ssh://github.com/lodash/lodash.git#4.17.21",
    "moment": "git@github.com:moment/moment.git",
    "zod": "github:colinhacks/zod",
    "react": "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
  }
}
bun install 配置

bun install 的默认行为可以在 bunfig.toml 中配置。默认值如下所示。

[install]

# whether to install optionalDependencies
optional = true

# whether to install devDependencies
dev = true

# whether to install peerDependencies
peer = true

# equivalent to `--production` flag
production = false

# equivalent to `--frozen-lockfile` flag
frozenLockfile = false

# equivalent to `--dry-run` flag
dryRun = false

# equivalent to `--concurrent-scripts` flag
concurrentScripts = 16 # (cpu count or GOMAXPROCS) x2
在 CI/CD 中使用 bun install

想要加快您的CI速度?使用官方 oven-sh/setup-bun 操作在 GitHub Actions 管道中安装 bun

在 .github/workflows/release.yml 中:

name: bun-types
jobs:
  build:
    name: build-app
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repo
        uses: actions/checkout@v4
      - name: Install bun
        uses: oven-sh/setup-bun@v1
      - name: Install dependencies
        run: bun install
      - name: Build app
        run: bun run build

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值