2 回答
TA贡献1803条经验 获得超6个赞
TA贡献1719条经验 获得超6个赞
Lerna 链接(或引导程序)将直接在 node_modules 目录下创建符号链接,或者对于具有@-scoped name的包,在具有该名称的子目录中创建符号链接。假设你的包都在./packages/*,任何直接在下面./node_modules或中的符号链接./packages/*/node_modules。例如,在引导之后,lerna 已经创建了几个符号链接到我的创造性命名的@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 把它们挖出来:
$ find . -type l -and \( -path './node_modules/*' -or -path './packages/*/node_modules/*' \)
./packages/bar/node_modules/@myscope/foo
./node_modules/@myscope/foo
这不是完全有选择性的,因为它可以找到您使用创建的符号链接npm link。
我可以ls -l用来转储源和符号链接目标(相readlink对于只打印目标):
$ 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
如果您对选择性有信心,则可以 -exec rm {} \;删除它们。它不如内置的撤消功能好,但至少它可以帮助您了解 lerna 做了什么。
添加回答
举报