Конфігураційні залежності
Конфігураційні залежності встановлюються перед усіма іншими типами залежностей (перед "dependencies", "devDependencies", "optionalDependencies").
Конфігураційні залежності не можуть мати власних залежностей або сценаріїв життєвого циклу. Їх слід додати, використовуючи точну версію та контрольну суму перевірки цілісності. Приклад:
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"