比npm link 更好用的yalc
阿新 • • 發佈:2021-06-10
在元件依賴開發中,專案作為依賴庫沒辦法單獨直接執行,需要依賴進別的專案執行,這時候最常用的方式就是npm link
。但用npm link
引入的依賴由於資原始檔不在專案下,webpack
不會對其做預編譯,導致實際構建或者執行時會報錯,此時如果直接將檔案複製進依賴目錄則能正常執行。對於這樣的情況,意外的碰到了一個很適合的解決方案——yalc。
Yalc
yalc
可以在本地將npm包
模擬釋出,將釋出後的資源存放在一個全域性儲存中。然後可以通過yalc
將包新增進需要引用的專案中。
這時候package.json
的依賴表中會多出一個file:.yalc/...
的依賴包,這就是yalc
建立的特殊引用。同時也會在專案根目錄建立一個yalc.lock
yalc
包的操作,才能正常使用。
整個過程相對於npm link
會更加繁瑣一些,要經過發包、新增依賴,結束後也需要做清除操作,但也正因此才避免了npm link
的一些問題。
安裝
NPM: npm i yalc -g Yarn: yarn global add yalc
釋出依賴
在所開發的依賴專案下執行釋出操作
yalc publish
此時如果存在npm 生命週期
指令碼:prepublish
、prepare
、prepublishOnly
、prepack
、preyalcpublish
,會按此順序逐一執行。如果存在:postyalcpublish
postpack
、publish
、postpublish
,也會按此順序逐一執行。
想要完全禁用指令碼執行需要使用
yalc publish --no-scripts
此時就已經將依賴釋出到本地倉庫了。
當有新修改的包需要釋出時,使用推送命令可以快速的更新所有依賴
yalc publish --push yalc push // 簡寫
引數:
--changed
,快速檢查檔案是否被更改--replace
,強制替換包
新增依賴
進入到專案執行
yalc add [my-package]
可以看到專案中添加了yalc.lock
檔案,package.json
對應的包名會有個地址為file:.yalc/
也可以使用
yalc add [my-package@version]
將版本鎖定,避免因為本地新包推送產生影響。
引數:
--dev
,將依賴新增進dependency
中--pure
,不會影響package.json
檔案--link
,使用link
方式引用依賴包,yalc add [my-package] --link
--workspace (or -W)
,新增依賴到workspace:協議中
更新依賴
yalc update yalc update [my-package]
會根據yalc.lock
查詢更新所有依賴
移除依賴
yalc remove [my-package] yalc remove --all // 移除所有依賴並還原
檢視倉庫資訊
當我們要檢視本地倉庫裡存在的包時
yalc installations show
要清理不需要的包時
yalc installations clean [my-package]