# 安装依赖$pnpminstall# 给指定 workspace 安装依赖$pnpmadd<package-name>--filter<workspace-name># 卸载依赖$pnpmuninstall<package-name>--filter<workspace-name># 更新依赖$pnpmupdate<package-name>--filter<workspace-name># 给根目录安装依赖 - -w 为安装 -workspace-root$pnpmadd<package-name>-<D>w#...
安装内部workspace依赖 bash pnpmadd<package-name>--filter<workspace-name># orpnpmaddweb--filterdocs 请注意你当前的pnpm版本,在9.0后pnpm修改link-workspace-packages的默认值为false。该属性开启后,你在安装依赖时优先在本地链接,而不是从registry(远程) 中下载。
选定的工作空间(即包)中运行所选的 yarn 命令yarn workspace <package-name> # 添加依赖yarn workspace docs add dayjs# 移除依赖yarn workspace docs remove dayjs 如果你想为所有的包添加一个共同的依赖关系,进入项目的根目录并使用-W (或-ignore-workspace-root-check) 标志 yarn add dayjs -W -D 在doc...
如上图所示的 packageX 2.0 和 packageY 2.0 被重复安装多次,从而造成 npm 和 yarn 的性能一些性能损失。 这种场景在 monorepo 多包场景下尤其明显,这也是yarn workspace经常被吐槽的点,另外扁平化的算法实现也相当复杂,改动成本很高。 那么pnpm是如何解决这种问题的呢? pnpm的破解之道:网状 + 平铺的node_modules...
③ pnpm-workspace.yaml文件中添加common文件夹 ④ 编写index.ts文件暴露方法 export const hello = () => { console.log('hello') } ⑤ 根目录运行pnpm -F main-project add common将common里的方法暴露给main-project 这里的-F是--filter的简写,用于过滤指定的package,用法 pnpm --filter ...
到这里,一个基于pnpm workspace的monorepo项目基本完成,剩下的不过是在该项目内的填充。 注意!项目目前还不能够正常运行,因为在packages/componentspackages/hookspackages/utils还没有新建index.ts文件并这这些目录下的package.json配置main入口 如果你在上面过程中发现了这个问题并手动创建并配置了,那么完成根目录的scripts...
pnpm add @pnpm/filter-workspace-packages License MIT Readme Keywords pnpm10 pnpm Install npm i@pnpm/filter-workspace-packages Repository github.com/pnpm/pnpm/blob/main/workspace/filter-workspace-packages Fundthis package License MIT Unpacked Size ...
我正在研究monorepo程序,发现有些人使用pnpm install在工作区中安装软件包,而另一些人则使用pnpm add。在pnpm文档中,add和install命令似乎是一样的,但是有一些不同的选项,比如--offline (install)、--workspace( add),如果我使用pnpm install [pkgname] --workspace,它的工作正常。那么pnpm install和pnpm add有什么...
pnpm 与 npm/yarn 另外一个很大的不同就是支持了 monorepo,体现在各个子命令的功能上,比如在根目录下 pnpm add A -r, 那么所有的 package 中都会被添加 A 这个依赖,当然也支持 --filter字段来对 package 进行过滤。
pnpm add @pnpm/workspace.pkgs-graph Usageimport createPkgsGraph from 'pkgs-graph' const {graph} = createPkgsGraph([ { dir: '/home/zkochan/src/foo', manifest: { name: 'foo', version: '1.0.0', dependencies: { bar: '^1.0.0', }, }, }, { dir: '/home/zkochan/src/bar', ...