Робота з TypeScript
pnpm має добре працювати з TypeScript "з коробки" у більшості випадків.
Не зберігайте символічні посилання
Не слід використовувати TypeScript з параметром preserveSymlinks
, встановленим у значення true
. TypeScript не зможе правильно розпізнати залежності типів у повʼязаних node_modules
. Якщо вам з якихось причин потрібно зберегти симлінк, вам слід встановити параметр nodeLinker
у pnpm у значення hoisted
.
Використання робочого простору
Іноді можуть виникати проблеми, якщо у робочому просторі використовуються різні версії залежності @types/
. Ці проблеми виникають, коли пакунок вимагає ці типи, не маючи залежності від типів у залежностях. Наприклад, якщо у ваших залежностях є antd
, який покладається на @types/react
, ви можете отримати помилку компіляції, якщо у вашому робочому просторі є декілька версій @types/react
. Насправді це проблема з боку antd
, оскільки він мав би додати @types/react
до peerDependencies
. На щастя, це можна виправити, додавши до antd
відсутні однорангові залежності. Ви можете зробити це, додавши наступне до pnpm-workspace.yaml
:
packageExtensions:
antd:
peerDependencies:
'@types/react': '*'
Крім того, ви можете встановити конфігураційну залежність, яку ми створили для вирішення цих проблем @pnpm/types-fixer
. Виконайте:
pnpm add @pnpm/types-fixer --config
pnpm config set pnpmfile node_modules/.pnpm-config/@pnpm/types-fixer/pnpmfile.cjs --location=project