使用 TypeScript
大多数情况下,pnpm 应该可以与 TypeScript 很好地配合使用。
不保留符号链接
你不应该使用 preserveSymlinks 设置为 true 的 TypeScript。 TypeScript 将无法正确解析链接的 node_modules 中的类型依赖关系。 如果你确实需要维护符号链接,那么你应该设置 pnpm 的 nodeLinker 设置为 hoisted 。
工作区使用
如果工作区中存在不同版本的 @types/ 依赖项,有时可能会遇到问题。 当包需要这些类型而依赖项中没有类型依赖时,就会发生这些问题。 例如,如果你的依赖项中有 antd,它依赖于 @types/react,那么当你的工作区中有多个版本的 @types/react 时,你可能会收到编译错误。 这实际上是 antd 端的问题,因为它应该将 @types/react 添加到 peerDependencies。 幸运的是,你可以通过在 antd 中扩展缺失的对等依赖来解决这个问题。 你可以通过将此添加到你的 pnpm-workspace.yaml来做到这一点:
packageExtensions:
antd:
peerDependencies:
'@types/react': '*'
或者,你可以安装我们为处理这些问题而创建的配置依赖项 ['@pnpm/plugin-types-fixer']。 运行:
pnpm add @pnpm/plugin-types-fixer --config