配置依赖项
配置依赖项在所有其他类型的依赖项之前安装(在“dependencies”、“devDependencies”、“optionalDependencies”之前)。
配置依赖项不能具有其自己的依赖项或生命周期脚本。 应该使用精确的版本和完整性校验来添加它们。 示例:
pnpm-workspace.yaml
configDependencies:
my-configs: "1.0.0+sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="
使用方法
加载一个允许的构建的依赖列表
You may load a list of package names that are allowed to be built via configurational dependencies and the onlyBuiltDependenciesFile
setting. 例如,你可以发布一个在其根目录中带有“allow.json”文件的包:
[
"esbuild",
"fsevents"
]
Let's say this package is called my-configs
, then your project's pnpm-workspace.yaml
will look like this:
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" 的配置依赖关系,你可以从它中加载补丁:
configDependencies:
my-patches: "1.0.0+sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="
patchedDependencies:
react: "node_modules/.pnpm-config/my-patches/react.patch"