Дублирование пакета npm PeerDependencyJavascript

Форум по Javascript
Ответить
Anonymous
 Дублирование пакета npm PeerDependency

Сообщение Anonymous »

У меня есть проект, содержащий папку с библиотекой компонентов React, а другой — с примером приложения, демонстрирующего эти компоненты.
Это (упрощенная) структура:

Код: Выделить всё

+- [common-components]
|  +- [src]
|  |  +- SomeComponent.tsx
|  |
|  +- package.json
|
+- [common-components-example]
+- [src]
|  +- App.tsx
|
+- package.json
В common-comComponents\package.json у меня есть библиотека my-api, объявленная как одноранговая зависимость:

Код: Выделить всё

{
"name": "common-components",
"version": "0.0.1",
"type": "module",
"scripts": {
"build": "npx tsup",
},
"peerDependencies": {
"my-api": "^0.1.0",
Затем в common-comComponents-example/package.json я использую common-comComponents в качестве пути и my-api в качестве зависимости:

Код: Выделить всё

{
"name": "common-components-example",
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "vite",
},
"dependencies": {
"my-api": "^0.1.0",
"common-components": "../common-components",
Моя проблема в том, что my-api, кажется, дублируется, когда я запускаю npm ls, что, скорее всего, вызывает проблемы, поскольку библиотека компонентов использует версию API, которая не совпадает с той, которая инициализируется библиотекой примеров:

Код: Выделить всё

> npm ls my-api
common-components-example@0.0.1
+-- my-api@0.1.0
`-- common-components@0.0.1 -> .\..\common-components
`-- my-api@0.1.0
Разве API не должен быть установлен только один раз, поскольку он объявлен как одноранговая зависимость?

Есть ли какие-то дополнительные настройки в package.json, которые мне могут не хватать?

Подробнее здесь: https://stackoverflow.com/questions/797 ... uplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»