首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lerna import总是返回EDESTDIR

lerna import总是返回EDESTDIR
EN

Stack Overflow用户
提问于 2020-02-17 00:12:33
回答 1查看 832关注 0票数 3

我有一个预先存在的项目,我想将它导入到我现有的lerna monorepo中,它使用纱线工作区。

命令:

我试过运行以下所有命令。这一错误始终没有改变。另外,宠物商店有一个package.json文件,是一个git。

代码语言:javascript
复制
lerna import ./petstore --dest="./packages/"
lerna import ./petstore --dest="./packages/api/"

错误:

代码语言:javascript
复制
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

代码语言:javascript
复制
{
  "packages": [
    "packages/**/*"
  ],
  "npmClient": "yarn",
  "useWorkspaces": true,
  "private": true,
  "version": "0.0.1",
  "lerna": "2.11.0"
}

package.json

代码语言:javascript
复制
{
  "name": "root",
  "devDependencies": {
    "lerna": "^2.11.0"
  },
  "workspaces": [
    "packages/**/*"
  ],
}

我看过的资源:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-20 06:11:43

Lerna从键workspaces读取package.json上的包,而不是从lerna.json上的packages读取包。

lerna用/*读取所有值,并将它们视为包目录。它从字面上解释**,而不是将其解析为通配符并展开它。

解决方案是将packageslerna.json中删除。

代码语言:javascript
复制
{
  "npmClient": "yarn",
  "useWorkspaces": true,
  "private": true,
  "version": "0.0.1",
  "lerna": "2.11.0"
}

并更新工作区路径,以显式引用包中的任何子目录,如果您的monorepo是这样构造的:

代码语言:javascript
复制
{
  "name": "root",
  "devDependencies": {
    "lerna": "^2.11.0"
  },
  "workspaces": [
    "packages/a/*",
    "packages/api/*"
  ],
}

要将pet-store项目从monorepo之外的目录导入到monorepo中的packages/api中:

代码语言:javascript
复制
lerna import ../pet-store --dest="./packages/api/"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60254487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档