Обзор
В моей настройке 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"