Как указать минимальную версию зависимости типа в библиотеке TS - PullRequest
0 голосов
/ 27 февраля 2019

Обзор

В моей настройке TypeScript у меня есть библиотека (mylibrary) и потребитель библиотеки (consumer).Оба имеют зависимость от react и, следовательно, зависимость от @types/react.mylibrary имеет прямую зависимость от react.consumer имеет зависимость от react через свою react-router зависимость.

Минимальное требование mylibrary равно @types/react ^16.8.0, в то время как минимальное требование для react-router @types/react is *.

Ожидаемый результат

Зависимость @types/react разрешается до ^16.8.0.(При выполнении yarn в consumer)

Фактический результат

Зависимость @types/react разрешается в 16.4.14.

Вопрос

Как правильно указать минимально необходимую @types/react версию для ^16.8.0 в mylibrary, чтобы разрешить эту версию @types/react в consumer?

Вложения

package.json consumer

"dependencies": {
  "react-router": "4.3.1", 
  "@types/react-router": "4.4.4", (has a dependency on @types/react: *)
  "mylibrary": "5.0.8" (has a dependency on @types/react: ^16.8.0)
}

package.json mylibrary

"dependencies": {
  "react": "16.8.3",
  "@types/react": "^16.8.0"
}

$ пряжа почему @ печатает / реагирует

=> Found "@types/react@16.4.14"
info Reasons this module exists
   - "@types#react-router" depends on it
   - Hoisted from "@types#react-router#@types#react"

пряжа.lock

"@types/react-router@*", "@types/react-router@4.4.4":
  version "4.4.4"
  resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-4.4.4.tgz#4dbd5588ea6024e0c04519bd8aabe74c0a2b77e5"
  integrity sha512-TZVfpT6nvUv/lbho/nRtckEtgkhspOQr3qxrnpXixwgQRKKyg5PvDfNKc8Uend/p/Pi70614VCmC0NPAKWF+0g==
  dependencies:
    "@types/history" "*"
    "@types/react" "*"

"@types/react@*":
  version "16.4.14"
  resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.14.tgz#47c604c8e46ed674bbdf4aabf82b34b9041c6a04"
  integrity sha512-Gh8irag2dbZ2K6vPn+S8+LNrULuG3zlCgJjVUrvuiUK7waw9d9CFk2A/tZFyGhcMDUyO7tznbx1ZasqlAGjHxA==
  dependencies:
    "@types/prop-types" "*"
    csstype "^2.2.0"
...