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