你能撤消 lerna bootstrap 吗?
Can you undo a lerna bootstrap?
我有 运行 一个 lerna bootstrap --hoist。我现在想撤消此操作并取消链接所有已创建的符号链接。有执行此操作的命令吗?
Lerna link(或 bootstrap)将直接在 node_modules 目录下创建 symlinks,或者对于带有 @-scoped name 的包,在具有该名称的子目录中。假设您的包都在 ./packages/*
中,任何 symlink 直接在 ./node_modules
下或 ./packages/*/node_modules
中。例如,在 bootstrap 之后,lerna 为我创造性地命名的 @myscope/foo
包创建了一对 symlinks:
.
├── 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
创建的符号 link。
我可以使用 ls -l
转储源和 symlink 目标(相对于 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 做了什么。
是的,运行
lerna clean
参考:https://github.com/lerna/lerna/tree/main/commands/clean#readme
我有 运行 一个 lerna bootstrap --hoist。我现在想撤消此操作并取消链接所有已创建的符号链接。有执行此操作的命令吗?
Lerna link(或 bootstrap)将直接在 node_modules 目录下创建 symlinks,或者对于带有 @-scoped name 的包,在具有该名称的子目录中。假设您的包都在 ./packages/*
中,任何 symlink 直接在 ./node_modules
下或 ./packages/*/node_modules
中。例如,在 bootstrap 之后,lerna 为我创造性地命名的 @myscope/foo
包创建了一对 symlinks:
.
├── 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
创建的符号 link。
我可以使用 ls -l
转储源和 symlink 目标(相对于 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 做了什么。
是的,运行
lerna clean
参考:https://github.com/lerna/lerna/tree/main/commands/clean#readme