umi 项目使用 pnpm 无法启动


看到各种开源项目从 yarn 迁移到 pnpm,心血来潮也想来尝试一下 pnpm 这款被吹爆的包管理工具。

项目之前使用的 yarn,需要将其 lock 文件转换一下。查阅文档 pnpm 提供了相应命令,直接使用就完事,nice。

▶ pnpm import
  /.../

完事后会生成 'pnpm-lock.yaml' 文件

├── package.json
└── pnpm-lock.yaml

删除所有 node_modules 文件执行 pnpm install 重新安装依赖。

启动项目,然后一大堆报错,"Can't resolve 'xxx' in 'xxxx''。

研究文档发现,yarn 和 npm 会将所有依赖平铺在 node_modules,在项目中可以访问任何依赖的包。默认配置的 pnpm 创建 node_modules 时不会平铺依赖,我们需要将依赖提升至node_modules根目录。

创建 '.npmrc' 文件

shamefully-hoist=true

此配置将所有内容提升到node_modules的根目录,如果明确知道需要提升的包名,可以按如下设置

public-hoist-pattern[]=moment
public-hoist-pattern[]=@umijs/*
public-hoist-pattern[]=antd
public-hoist-pattern[]=umi-request


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM