Параметри конфігурації Node-модулів в pnpm
Існує багато способів створення теки node_ modules. Вашою метою має бути створення найсуворішого модуля, але якщо це неможливо, є варіанти створення довільних node_modules.
Стандартне встановлення
Стандартно pnpm v5 створить напівсуворе сховище node_modules. Напівсуворе означає, що ваш застосунок зможе вимагати лише пакунки, додані як залежності до package.json
(з кількома винятками). Проте, ваші залежності будуть мати доступ до будь-яких пакунків.
Стандартна конфігурація виглядає так:
; Усі пакунки підіймаються до node_modules/.pnpm/node_modules
hoist-pattern[]=*
; Усі типи підіймаються до кореня, щоб задовольнити TypeScript
public-hoist-pattern[]=*types*
; Усі пакунки, пов’язані з ESLint, також підіймаються до кореневої теки
public-hoist-pattern[]=*eslint*
Plug'n'Play. Найсуворіша конфігурація
pnpm підтримує Yarn's Plug'n'Play починаючи з версії 5.9. З допомогою Pnp і ваш застосунок, і його залежності матимуть доступ лише до їх оголошених залежностей. Це навіть суворіше, ніж встановлення hoist=false
, оскільки всередині монорепо ваш застосунок не зможе отримати доступ навіть до залежностей кореневого проєкту.
Щоб використовувати Plug'n'Play, установіть такі параметри:
node-linker=pnp
symlink=false