You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在已有Angular项目中启用Yarn PnP替代npm?

解决Yarn 4 PnP在Angular 17中仍生成node_modules的问题

1. 启用项目的Yarn PnP模式

Yarn 4默认不会自动启用PnP,需手动配置项目的依赖链接器模式:

  • 在项目根目录创建或编辑.yarnrc.yml文件,添加配置:
    nodeLinker: pnp
    
  • 也可直接通过命令完成项目本地配置(推荐):
    yarn config set nodeLinker pnp --local
    

2. 清理现有依赖残留

删除已生成的node_modules和旧锁文件,避免残留配置干扰:

rm -rf node_modules
rm yarn.lock

3. 重新以PnP模式安装依赖

执行安装命令,此时Yarn会生成.yarn/cache缓存目录和.pnp.cjs解析文件,不再创建node_modules:

yarn install

4. 验证Angular CLI适配配置

确保项目本地的Angular配置与PnP兼容:

  • 检查项目根目录的angular.json,确认CLI包管理器设置为yarn:
    {
      "cli": {
        "packageManager": "yarn"
      }
    }
    
  • 若运行ng serve或构建时出现识别问题,可通过环境变量强制指定PnP模式:
    YARN_NODE_LINKER=pnp ng serve
    

常见排查点

  • 若仍生成node_modules,检查是否存在.npmrc文件设置了node-linker=node-modules,该配置会覆盖Yarn的PnP设置。
  • 确认Yarn版本为4.1.0,执行yarn --version验证,版本不符则重新激活对应版本:
    corepack enable
    corepack prepare yarn@4.1.0 --activate
    

内容的提问来源于stack exchange,提问作者Mohammad Abbasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 16:14:51