[英]How can I successfully lock down node module dependencies in a monorepo?
我正在開發一個開源項目,該項目目前正在使用lerna來幫助管理具有多個包的單個存儲庫。 到目前為止,一切都很好,只是時不時會出現一些問題,因為我們目前沒有收縮包裝任何東西。 我一直在嘗試做一些 monorepo 版本的收縮包裝,這樣我們就不會受到所有依賴項的支配(令人驚訝的是,在發布過程中一切都經常出錯!)想知道我是否在正確的軌道上。
我最初希望使用我在以前的項目中熟悉的 npm shrinkwrap。 不幸的是lerna 似乎不支持 shrinkwrap 。
計划 B 是使用紗線,經過最初的一些困難,在切換到使用紗線工作區后似乎yarn install --frozen-lockfile
至少我認為yarn install --frozen-lockfile
正在做我想做的事情。
不幸的是,除了依賴關系鎖定之外,yarn 似乎並沒有幫助——一切都適用於 npm 和 lerna,但 lerna 和 yarn 工作區似乎會導致解決模塊的問題(甚至解決同一目錄中令人困惑的問題)。
也許切換到 yarn 無論如何都太過分了,所以我開始想知道更新版本的 npm 和package-lock.json是否是一個更好的主意。 不幸的是,看起來它需要對 lerna進行一些解決,此時我開始想知道 lerna 到底增加了多少。 也許放棄lerna會有所幫助?
那么, tl; dr ,有沒有人有一個很好的方法來鎖定 monorepo 中的模塊依賴關系?
yarn
是一個生產就緒的包管理器,本機支持 monorepos :)
使用yarn workspaces
,無需同時使用lerna
作為 monorepo 管理器。
如果需要,您可以使用 lerna 的其他功能,但沒有理由使用 lerna 來安裝 monorepos(已經使用了紗線)。
如果在使用yarn
安裝/管理 monorepo 時出現特定錯誤,請將它們添加到問題中。
注意事項:
--frozen-lockfile
lockfile 在 yarn monorepo 中不做任何事情。 yarn
有一個懸而未決的問題,我認為這個問題不會很快解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.