我有一个预先存在的项目,我想将它导入到我现有的lerna monorepo中,它使用纱线工作区。
命令:
我试过运行以下所有命令。这一错误始终没有改变。另外,宠物商店有一个package.json文件,是一个git。
lerna import ./petstore --dest="./packages/"
lerna import ./petstore --dest="./packages/api/"错误:
lerna notice cli v3.20.2
lerna ERR! EDESTDIR --dest does not match with the package directories: packages/**另外,
lerna import ../petstore会导致创建一个packages/**/petstore,而这不是一个预期的结果。
我希望这包括所有有关的守则。我们在packages/shared下有支持包,在packages/api下有apis。
lerna.json
{
"packages": [
"packages/**/*"
],
"npmClient": "yarn",
"useWorkspaces": true,
"private": true,
"version": "0.0.1",
"lerna": "2.11.0"
}package.json
{
"name": "root",
"devDependencies": {
"lerna": "^2.11.0"
},
"workspaces": [
"packages/**/*"
],
}我看过的资源:
发布于 2020-02-20 06:11:43
Lerna从键workspaces读取package.json上的包,而不是从lerna.json上的packages读取包。
lerna用/*读取所有值,并将它们视为包目录。它从字面上解释**,而不是将其解析为通配符并展开它。
解决方案是将packages从lerna.json中删除。
{
"npmClient": "yarn",
"useWorkspaces": true,
"private": true,
"version": "0.0.1",
"lerna": "2.11.0"
}并更新工作区路径,以显式引用包中的任何子目录,如果您的monorepo是这样构造的:
{
"name": "root",
"devDependencies": {
"lerna": "^2.11.0"
},
"workspaces": [
"packages/a/*",
"packages/api/*"
],
}要将pet-store项目从monorepo之外的目录导入到monorepo中的packages/api中:
lerna import ../pet-store --dest="./packages/api/"https://stackoverflow.com/questions/60254487
复制相似问题