Установите dev зависимости моих зависимостей - PullRequest
0 голосов
/ 01 июня 2018

У меня есть monorepo, где у меня есть папка /packages со многими пакетами.

Я могу использовать npm i ./packages или npm i, если они уже указаны с использованием указателя файла.

Выглядит примерно так:

  "dependencies": {
    "@reggi/command": "file:packages/command",
    "@reggi/dep-merge": "file:packages/dep-merge",
    "@reggi/dep-merge-cli": "file:packages/dep-merge-cli",
    "@reggi/dep-pointer": "file:packages/dep-pointer"
  }

Проблема в том, что если я установлю эти пакеты, у меня не будет зависимостей dev.

Что я действительно хочу, так это установить devDependencies из этих зависимостей.

lerna популярный инструмент, который впервые применил monorepos, предлагает вам добавить все devDependencies для этих пакетов в корневой пакет.Проблема в том, что это устраняет возможность зависимости двух пакетов от разных версий заданной зависимости dev.

Я создал скрипт, который объединяет все devDependencies в dependencies вpreinstall затем отменяет изменения.Это работает, но иногда может быть немного странно, особенно если объяснить все это shrinkwrap.

Было бы неплохо, если бы я мог просто npm i --allDevDepsFromDeps, и он установил бы все мои зависимости dev-зависимости.

Есть ли какое-то другое решение, которое мне не хватает?

1 Ответ

0 голосов
/ 13 июля 2018

Я не вижу, чего вы пытаетесь достичь, разве devDepencies не используются для ... разработки?

Если вам нужна другая версия для другого пакета, просто не помещайте их вкорень, но в каждом пакете.

Проблема в том, что, если я установлю эти пакеты, я не получу зависимости dev.

Эти пакеты следует рассматривать как «производственные»Пакеты '/' bundled ', в этом случае вам не нужны зависимости dev.

Например, когда вы работаете с @ pkg / A, у него будет свой собственный devDep, но если вы работаете с @pkg / B, который зависит от @ pkg / A, @ pkg / A должен быть производственной / пакетной версией (без devDeps).

Возможно, вам стоит взглянуть на bundledDependencies или peerDependencies, чтоможет помочь вам.

...