为了账号安全,请及时绑定邮箱和手机立即绑定

你能撤销 lerna bootstrap 吗?

你能撤销 lerna bootstrap 吗?

大话西游666 2022-12-09 19:22:51
我运行了 lerna bootstrap --hoist。我现在想撤消此操作并取消链接所有已创建的符号链接。有执行此操作的命令吗?
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

查看完整回答
反对 回复 2022-12-09
?
慕侠2389804

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 做了什么。


查看完整回答
反对 回复 2022-12-09
  • 2 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信