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

Робота з 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