配置依赖项
配置依赖项在所有其他类型的依赖项之前安装(在“dependencies”、“devDependencies”、“optionalDependencies”之前)。
配置依赖项不能具有其自己的依赖项或生命周期脚本。 应该使用精确的版本和完整性校验来添加它们。 示例:
{
"pnpm": {
"configDependencies": {
"my-configs": "1.0.0+sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="
}
}
}
使用方法
加载一个允许的构建的依赖列表
你可以通过配置依赖项和 pnpm.onlyBuiltDependenciesFile
设置加载允许构建的包名称列表。 例如,你可以发布一个在其根目录中带有“allow.json”文件的包:
[
"esbuild",
"fsevents"
]
假设这个包名为 my-configs
,那么你的项目的 package.json
将如下所示:
{
"pnpm": {
"configDependencies": {
"my-configs": "1.0.0+sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="
},
"onlyBuiltDependenciesFile": "node_modules/.pnpm-config/my-configs/allow.json"
}
}
这样,你的项目将加载允许从 my-configs
构建的包列表。
安装钩子中使用的依赖项
配置依赖项在加载 .pnpmfile.cjs
的钩子之前安装,因此你可以将它们用作钩子的依赖项。
例如,你可能有一个名为 “my-hooks” 的配置依赖项,它导出了一个 readPackage
钩子。 在这种情况下,你可以将它导入到你的.pnpmfile.cjs
中如下所示:
const { readPackage } = require('.pnpm-config/my-hooks')
module.exports = {
hooks: {
readPackage
}
}
加载补丁
你可以通过配置依赖关系来参考 [补丁文件]。 例如,如果你有一个称为 "my-patches" 的配置依赖关系,你可 以从它中加载补丁:
{
"pnpm": {
"configDependencies": {
"my-patches": "1.0.0+sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="
},
"patchedDependencies": {
"react": "node_modules/.pnpm-config/react.patch"
}
}
}