跳到主要内容

pnpm 将子项目作为依赖引入项目

· 阅读需 2 分钟
素明诚
Full stack development

创建和配置 pnpm 工作空间

创建 pnpm-workspace.yaml 文件: 在项目的根目录下创建一个 pnpm-workspace.yaml 文件,用于指定包含的子项目路径。

packages:
- 'packages/*'

这告诉 pnpmpackages 文件夹下的每个子目录都是单独的项目,并应该被视为工作空间的一部分。

初始化子项目: 确保每个子项目目录下都有自己的 package.json 文件。这些 package.json 文件应定义各自的依赖和脚本。

安装和管理依赖

安装依赖: 在根目录执行 pnpm install 命令。这会根据 pnpm-workspace.yaml 的配置为所有子项目安装依赖,并在根目录的 node_modules 中创建必要的符号链接。

添加跨项目依赖: 如果你想在一个子项目中使用另一个子项目作为依赖,可以在 package.json 中使用 workspace: 协议。例如,如果 projectA 依赖于 projectB,则 projectApackage.json 应写为

{
"dependencies": {
"projectB": "workspace:*" // 注意这个 projectB 就是你子项目的文件夹名字
}
}

这告诉 pnpm 从当前工作空间中找到 projectB 并将其链接到 projectA

构建和运行项目

构建项目: 根据每个项目的配置,运行相应的构建命令。你可以在根目录下使用 pnpm run --filter <project-name> build 来针对特定项目运行构建脚本。

开发中的项目互用: 使用工作空间协议 workspace:* 允许你在开发中实时链接子项目,任何在依赖项目中的改动都会立即反映到使用该依赖的项目中。