Перейти до основного змісту
Версія: 10.x

Конфігураційні залежності

Конфігураційні залежності встановлюються перед усіма іншими типами залежностей (перед "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"
}
}
}