[英]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
。
{
"packages": [
"packages/**/*"
],
"npmClient": "yarn",
"useWorkspaces": true,
"private": true,
"version": "0.0.1",
"lerna": "2.11.0"
}
{
"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.