簡體   English   中英

lerna import 總是返回 EDESTDIR

[英]lerna import always returns EDESTDIR

我有一個預先存在的項目,我想將其導入到我現有的使用紗線工作區的 lerna monorepo 中。

命令:

我試過運行以下所有命令。 錯誤仍然頑固地保持不變。 此外,petstore 有一個 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下和API packages/api

lerna.json

{
  "packages": [
    "packages/**/*"
  ],
  "npmClient": "yarn",
  "useWorkspaces": true,
  "private": true,
  "version": "0.0.1",
  "lerna": "2.11.0"
}

包.json

{
  "name": "root",
  "devDependencies": {
    "lerna": "^2.11.0"
  },
  "workspaces": [
    "packages/**/*"
  ],
}

我看過的資源:

Lerna 從 package.json 上的關鍵workspaces讀取包而不是 lerna.json 上的packages

lerna 使用/*讀取所有值並將它們視為包目錄。 它從字面上解釋**並且不會將其解析為通配符並對其進行擴展。

解決方案是從lerna.json刪除packages

{
  "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項目從 mono-repo 外的目錄導入到 monorepo 中的packages/api中:

lerna import ../pet-store --dest="./packages/api/"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM