Yarn устанавливает локальный пакет npm так, чтобы локальный пакет использовал node_modules основного проекта (ошибка ckeditor-duduced-modules)

В своем MainProject я пытаюсь установить локальную версию плагина ckeditor-5 PeteCkPlugin, созданного с помощью генератора пакетов ckeditor5.

Я попробовал использовать yarn link в локальном корневом каталоге PeteCkPlugin, затем yarn link @PeteSpace/PeteCkPlugin в корневом каталоге MainProject, но получил ошибку Usage Error: Invalid destination '@PeteSpace/PeteCkPlugin'; Can't link the project to itself.

Я также попробовал использовать поле разрешения пряжи package.json:

{
  ...,
  "resolutions": { 
    "@PeteSpace/PeteCkPlugin": "link:/path/to/project/PeteSpace/PeteCkPlugin" 
  },"
  ...
}

который успешно устанавливает пакет, но MainProject затем завершается сбоем из-за "Uncaught CKEditorError: ckeditor-duplicated-modules Read more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-ckeditor-duplicated-modules" ошибки, поскольку я думаю, что локальный PeteCkPlugin пакет использует свой собственный PeteCkPackage/node_modules/ckeditor package, а не общий MainProject/node_modules/ckeditor package...

Я также попробовал portal: вместо link: в приведенном выше значении разрешения"...

Я пока не могу опубликовать пакет, так как он частный, и я еще не в нужной организации npm.

Рад услышать любые идеи, которые могут помочь, я определенно еще не понимаю символические ссылки и то, что происходит под капотом пряжи и npm.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
101
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Со временем у меня возникли аналогичные проблемы с yarn link, и вместо этого я прибег к использованию yalc, который каждый раз работал безупречно.

Процесс довольно прост:

  1. Установите Yalc по всему миру
volta install yalC# or `npm i -g yalc` if you don't use volta
  1. Опубликуйте свою зависимость
yalc publish # run from dependency root after build process
  1. Связать зависимость
yalc link # run from the root of your main project

Вы также можете подписаться и автоматически публиковать изменения из вашей зависимости.

Для получения дополнительной информации см. официальный файл readme.

Огромное спасибо Уэбберу! Да, yalc работает без каких-либо проблем, потрясающе. Я оставлю это открытым на некоторое время, на случай, если кто-нибудь знает способ, не требующий добавления еще одного инструмента в наш проект, а пока я буду использовать yalc, как вы предлагаете.

Pete 09.04.2024 22:59

Другие вопросы по теме