2 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
Lerna 鏈接(或引導(dǎo)程序)將直接在 node_modules 目錄下創(chuàng)建符號(hào)鏈接,或者對(duì)于具有@-scoped name的包,在具有該名稱的子目錄中創(chuàng)建符號(hào)鏈接。假設(shè)你的包都在./packages/*,任何直接在下面./node_modules或中的符號(hào)鏈接./packages/*/node_modules。例如,在引導(dǎo)之后,lerna 已經(jīng)創(chuàng)建了幾個(gè)符號(hào)鏈接到我的創(chuàng)造性命名的@myscope/foo包:
.
├── lerna.json
├── node_modules
│ └── @myscope
│ └── foo -> ../../packages/foo
├── package.json
├── package-lock.json
└── packages
├── bar
│ ├── node_modules
│ │ └── @myscope
│ │ └── foo -> ../../../foo
│ └── package.json
└── foo
└── package.json
我可以用 find 把它們挖出來(lái):
$ find . -type l -and \( -path './node_modules/*' -or -path './packages/*/node_modules/*' \)
./packages/bar/node_modules/@myscope/foo
./node_modules/@myscope/foo
這不是完全有選擇性的,因?yàn)樗梢哉业侥褂脛?chuàng)建的符號(hào)鏈接npm link。
我可以ls -l用來(lái)轉(zhuǎn)儲(chǔ)源和符號(hào)鏈接目標(biāo)(相readlink對(duì)于只打印目標(biāo)):
$ find . -type l -and \( -path './node_modules/*' -or -path './packages/*/node_modules/*' \) -exec ls -l {} \;
lrwxrwxrwx 1 eric eric 12 janv. 4 09:46 ./packages/bar/node_modules/@myscope/foo -> ../../../foo
lrwxrwxrwx 1 eric eric 18 janv. 4 09:45 ./node_modules/@myscope/foo -> ../../packages/foo
如果您對(duì)選擇性有信心,則可以 -exec rm {} \;刪除它們。它不如內(nèi)置的撤消功能好,但至少它可以幫助您了解 lerna 做了什么。
添加回答
舉報(bào)