Рабочие пространства пряжи с Lerna все еще добавляют пакеты в подпапки - PullRequest
0 голосов
/ 05 ноября 2018

Я запутался в рабочих пространствах пряжи. Я следовал этому руководству: https://medium.com/trabe/monorepo-setup-with-lerna-and-yarn-workspaces-5d747d7c0e91, но в одном из подпроектов я все еще получаю пакеты, добавленные в node_modules, которые дублируются из корневого node_modules. Полное тестовое репо здесь: https://github.com/donker/Dnn.React.Test

Root package.json:

{
"name": "dnn-react-test",
"version": "1.0.0",
"description": "DNN React Component Library",
"license": "MIT",
"repository": {
  "type": "git",
  "url": "https://github.com/dnnsoftware/Dnn.React.Common.git"
},
"scripts": {
},
"private": true,
"workspaces": [
  "packages/*"
],
"devDependencies": {
  "lerna": "2.11.0"
}
}

Подпроект package.json:

{
  "name": "dnn-tooltip",
  "version": "0.2.5",
  "description": "Display an icon and associated tooltip showing a message from an array parametter",
  "main": "index.js",
  "scripts": {
  },
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/dnnsoftware/Dnn.React.Common"
  },
  "dependencies": {
    "lodash": "4.17.10",
    "react-portal-tooltip": "2.4.0",
    "dnn-global-styles": "^0.0.5"
  }
}

Результат: пакеты / Подсказка / node_modules / lodash созданы.

Ожидается: всплывающая подсказка использует node_modules / lodash из корневой папки.

1 Ответ

0 голосов
/ 06 ноября 2018

Для правильного взаимодействия lerna и yarn необходимо добавить следующие две пары ключ-значение в ваш lerna.json:

"npmClient": "yarn",
"useWorkspaces": true

Хотя это не имеет прямого отношения к вашему вопросу, я бы также предложил изменить

"workspaces": [
    "packages/*"
],

до

"workspaces": [
    "packages/**"
],

, чтобы заставить lerna собирать пакеты в подпапках (например, /packages/components/button).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...