pnpm 内置了对单一存储库(也称为多包存储库、多项目存储库或单体存储库)的支持, 你可以创建一个 workspace 以将多个项目合并到一个仓库中。 与npm、yarn 不同,pnpm 的 workspaces 的配置都放在 pnpm-workspace.yaml 文件里 一个workspace 的根目录下必须有 pnpm-workspace.yaml 文件, 也可能会有 .npmrc 文件。
要想启动pnpm的workspace功能,需要工程根目录下存在pnpm-workspace.yaml配置文件,并且在pnpm-workspace.yaml中指定工作空间的目录。比如这里我们所有的子包都是放在packages目录下,因此修改pnpm-workspace.yaml内容如下: 代码语言:javascript 复制 packages:-'packages/*' 初始化完毕后的工程目录结构如下: 代码语言:javascrip...
为了解决这个问题,对比了learn+yarn / npm等方案后,决定采用pnpm workspace方案对项目进行管理。 下面将通过一个例子初步学会pnpm workspace。 随便找个文件夹创建workspace项目 D: && cd project/monorepo mkdir demo2 && cd demo2 新建pnpm-workspace.yaml文件并填入相关内容以启用workspace packages: - packages/* ...
pnpm内置了对单一存储库(也称为多包存储库、多项目存储库或单体存储库)的支持, 你可以创建一个 workspace 以将多个项目合并到一个仓库中。 一个workspace 的根目录下必须有pnpm-workspace.yaml文件, 也可能会有.npmrc文件。 工作空间(Workspace) | pnpm https://www.pnpm.cn/pnpm-workspace_yaml 二、pnpm-works...
pnpm add <package-name> --filter <workspace-name> # or pnpm add web --filter docs请注意你当前的 pnpm 版本,在 9.0 后pnpm 修改link-workspace-packages 的默认值为 false。该属性开启后,你在安装依赖时优先在本地链接,而不是从 registry(远程) 中下载。 所以在这个版本你若需要使用命令安装一个新的 ...
pnpm 的 workspace 实现 monorepo 工程 前言 前端多个包管理的的方式一般都是采用monorepo的方式去管理,之前都是使用的lerna的workspace去管理。这段时间包管理切换到了pnpm上,它也有worksapce,可以支持monorepo。 monorepo 有的小伙伴可能对monorepo不太了解,我们简单说下:...
并且该项目有两个workspace 分别位于apps下和packages下 也就是说这两个文件夹下的子文件夹是具体的独立的app和pkg 我们用最简单的例子来演示一下monorepo的实际应用 我们先在项目根目录下为项目安装基础依赖 通过视频中pnpm命令来安装 注意使用pnpm安装依赖 ...
1. 创建 `pnpm-workspace.yaml ` 文件:这是启用 pnpm 工作区(workspace)所必需的。该文件应该位于项目的根目录,并且定义了工作区中包含的包的路径。例如: packages: - 'packages/*' - 'apps/*' 这表示工作区包含 packages 和 apps 目录下的所有子目录作为单独的包 。 2. 安装依赖:使用 pnpm install 在根...
答案就是pnpm workspace,这使得pnpm天生支持monorepo。 workspace 可以使项目之间有依赖关系,在monorepo根目录里只需要有pnpm-workspace.yaml,并且在里面配置packages,pnpm就可以识别出workspace的区域。 ``pnpm-workspace.yamlpackages:-"packages/*" 在根目录建立一个packages目录来使用pnpm workspace,packages下有两个项目...
本文将探讨如何利用 pnpm workspace 和 standalone 模式来构建 Next.js 应用程序的轻量级Docker镜像。这种方法通过仅在node_modules目录中包含必要的文件,显著减少了最终 Docker 镜像的大小。 Standalone 模式简介 通常情况下,所有在dependencies中列出的包都会被放置在node_modules目录中,这会导致镜像体积增大。而在 stand...