迁移冒险:CRA到Vite和NPM到PNPM
#javascript #npm #vite #pnpm

当我将客户的项目从CRA迁移到Vite时,我遇到了很多问题。其中一些是由于某些特定于WebPack的进口,其他是我使用pnpm而不是npm

这不是一个明智的举动,迁移到另一个构建工具以及另一个软件包管理器。因此,我切换回使用npm完成我的Vite迁移,修复了错误,所有这些都很好。

当我尝试再次使用pnpm并使用它安装软件包时,它一直抛出许多错误,这些错误未安装x,y,z,这很奇怪,因为npm版本可以正常工作!

通过pnpm import,现有的锁定文件被解析并生成pnpm-lock.yaml,因此锁定文件应具有相同的内容。

的确,锁定文件中提到的所有依赖项都将由pnpm安装而无故障。但是,由于npm如何安装软件包及其依赖项,您会发现自己能够使用软件包的依赖项而无需明确安装。

这正是发生的事情,特别是date-fns和其他一些软件包。 npm如何构造您的node_modules/允许您导入date-fns,即使它不作为package.json中的依赖性存在,只要其他包裹取决于它。

底线,显式比隐式好。

我下载了失踪的包裹,就像一个好男孩一样,生活在ð中移动。

参考

我跟随this article从CRA切换到Vite,非常有帮助。