合理配置 workspace 后,包之间互相依赖不需要使用 npm link,将在 install 时中处理 三、在 pnpm 中使用 workspace A workspace must have a pnpm-workspace.yaml file in its root. A workspace also may have an .npmrc in its root. 如文档描述,启用 pnpm 的 workspace 需要在项目根目录创建 pnpm-workspace....
因此,如果您设置为"foo": "workspace:2.0.0"时,安装将会失败,因为"foo@2.0.0"不存在于此 workspace 中。 当link-workspace-packages 选项被设置为 false 时,这个协议将特别有用。 在这种情况下,仅当使用 workspace: 协议声明依赖,pnpm 才会从此 workspace 链接所需的包。 详细内容请参考 hoist 相关配置 pnpm ...
幸运的是,pnpm从版本3.7开始支持工作区协议workspace:。当使用此协议时,pnpm 将拒绝解析除本地工作区package之外的任何内容。 因此,如果您设置为"foo": "workspace:2.0.0"时,安装将会失败,因为"foo@2.0.0"不存在于工作空间中。这个特性在monorepo当中特别有用。 可以通过修改配置link-workspace-packages来改变包的...
🔔 配置更新 默认禁用 link-workspace-packages,这意味着默认情况下,只有在使用工作区协议指定依赖项时,才会从工作区包中链接依赖项。默认启用 dedupe-injected-deps。默认启用 hoist-workspace-packages 和 enable-pre-post-scripts。在 macOS 上使用与 Linux 相同的目录 ~/.local/state/pnpm 存储状态文件。🔒 ...
link-workspace-packages=true prefer-workspace-packages 如果启用此选项,则工作区中的本地包优先于注册表中的包,即使注册表中有更新版本的包也是如此。 Default: false prefer-workspace-packages=false shared-workspace-lockfile 如果启用此选项,pnpm会在工作区的根目录下创建一个pnpm-lock.yaml文件。
// .\packages\docs\package.json"dependencies":{// 添加liba的依赖,注意版本号的写法。"liba":"workspace:^1.0.0"// ... 其它依赖} 在创建.\packages\docs\src\libA的目录,并新建展示文档index.md。 # .\packages\docs\src\libA\index.md---nav:title:Componentspath:/components---## Libiary AButto...
配置方面进行了更新,以下为默认设置:- 禁用 link-workspace-packages,仅在使用工作区协议指定依赖项时从工作区包中链接依赖项。- 启用 dedupe-injected-deps。- 启用 hoist-workspace-packages 和 enable-pre-post-scripts。- 在 macOS 上使用与 Linux 相同的目录 .local/state/pnpm 存储状态文件。锁...
跟npm install 类似,安装项目下所有的依赖。但对于 monorepo 项目,会安装 workspace 下面所有 packages 的所有依赖。不过可以通过 --filter 参数来指定 package,只对满足条件的 package 进行依赖安装。 当然,也可以这样使用,来进行单个包的安装: // 安装 axios ...
inject workspace peerDep 的问题还不仅如此(在 pnpm 中), pnpm 有个独特的性质,即 workspace 和三方库的 link 处理方式不同,对于三方库每个三方库都有一个指向全局 store 的 hardlink, 且当存在多重 peerDep 的版本的情况下,会存在多个 hardlink 分身,但是对于 workspace,如果 app1 依赖了某个 workspace sdk,...
我的.npmrc 配置如下 link-workspace-packages = true recursive-install = true store-dir = .pnpm-store virtual-store-dir = node_modules/.pnpm Member zkochan commented Aug 12, 2020 Is demo01 the name of the project in package.json? If you want to filter by location, use pnpm add foo ...