.pnpmfile.cjs
pnpm 允许您通过特殊功能(钩子)直接挂钩到安装过程。 钩子可以在名为 .pnpmfile.cjs 的文件中声明。
默认情况下, .pnpmfile.cjs 应该与锁文件位于同一目录中。 例如,在具有共享锁文件的 工作区 中 .pnpmfile.cjs 应该位于 monorepo 的根目录中。
钩子
摘要:
| 钩子函数 | 过程 | 用途 |
|---|---|---|
hooks.readPackage(pkg, context): pkg | 在 pnpm 解析依赖项的包清单后调用 | 允许您改变依赖项的 package.json |
hooks.afterAllResolved(lockfile, context): lockfile | 在解析完依赖关系后调用。 | 允许您更改锁文件。 |
hooks.readPackage(pkg, context): pkg | Promise<pkg>
允许您在语法解析之后和依赖解析之前改变依赖项的 package.json。 这些突变不会保存到文件系统,但是,它们将影响被解析至锁文件的内容,从而影响哪些包将被安装。
请注意,如果您已经解析好了要修改的依赖项,则需要删除 pnpm-lock.yaml。
提示
如果你需要将 package.json 的变化保存到文件系统中,你需要使用 pnpm patch 命令对package.json文件进行 patch。 例如,如果您想删除依赖项的 bin 字段,这可能很有用。
参数
pkg- 包的清单。 来自注册源的响应或package.json的内容。context- 步骤的上下文对象。 方法#log(msg)允许您使用该步骤的调试日志。