Перейти до основного змісту
Версія: Далі

Псевдоніми

Псевдоніми дозволяють встановлювати залежності з користувацькими іменами.

Припустимо, що ви використовуєте lodash у своєму проєкті. І у lodash є несправність, що ламає ваш проєкт. Ви створили форк з виправленням, але lodash не збирається його приймати. У такому випадку ви або встановлюєте lodash зі свого репозиторію (як залежність, розміщену на git), або публікуєте його під іншим ім’ям. Якщо ви обрали другий варіант, вам доведеться відредагувати всі імпорти у вашому проєкті використовуючи нову назву залежності (require('lodash') => require('awesome-lodash')). Але завдяки псевдонімам у вас є ще один варіант.

Опублікуйте новий пакет під назвою awesome-lodash і встановіть його, використовуючи lodash як його псевдонім:

pnpm add lodash@npm:awesome-lodash

Ніяких змін в коді не потрібно. Усі імпорти lodash тепер вказують на awesome-lodash.

Іноді вам хочеться використовувати дві різні версії пакета у вашому проєкт. Легко:

pnpm add lodash1@npm:lodash@1
pnpm add lodash2@npm:lodash@2

Тепер ви можете імпортувати першу версію lodash через require('lodash1') і другу — через require('lodash2').

Ще більше можливостей дають хуки. Можливо, ви хочете замінити lodash на awesome-lodash всюди у node_modules. Ви можете легко досягти цього завдяки .pnpmfile.cjs:

function readPackage(pkg) {
if (pkg.dependencies && pkg.dependencies.lodash) {
pkg.dependencies.lodash = 'npm:awesome-lodash@^1.0.0'
}
return pkg
}

module.exports = {
hooks: {
readPackage
}
}