"workspaces"。Workspaces 将代码库拆分为位于同一仓库中的不同软件包,这些软件包可以相互依赖,并且(在可能的情况下)共享一个 node_modules 目录。
克隆这个示例项目来尝试使用 workspaces。
根目录下的
package.json 不应包含 "dependencies"、"devDependencies" 或其他依赖字段。每个软件包都应自包含,并声明自己的依赖项。通常会声明 "private": true,以避免不小心将根软件包发布到 npm。
package.json
通常会将所有软件包放在
packages 目录中。package.json 中的 "workspaces" 字段支持 glob 模式,因此 packages/* 会将 packages 下的每个子目录视为一个独立的 软件包(也称为 workspace)。
File Tree
要在 workspaces 之间添加依赖,请使用
"workspace:*" 语法。以下示例将 stuff-a 添加为 stuff-b 的依赖项。
packages/stuff-b/package.json
添加后,从项目根目录运行
bun install 来安装所有 workspaces 的依赖。
terminal
要向特定 workspace 添加 npm 依赖,请
cd 到该目录,然后像平常一样运行 bun add。Bun 会检测到你位于 workspace 中,将依赖添加到该 workspace 的 package.json,并更新根 lockfile。新的 workspace 默认使用isolated installs,因此该软件包会安装到根 node_modules/.bun 存储中,并从 workspace 自己的 node_modules 创建符号链接;使用 --linker hoisted 则会将其提升到根 node_modules 中。
terminal
请参阅
bun install。