В своем 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.
Со временем у меня возникли аналогичные проблемы с yarn link
, и вместо этого я прибег к использованию yalc
, который каждый раз работал безупречно.
Процесс довольно прост:
volta install yalC# or `npm i -g yalc` if you don't use volta
yalc publish # run from dependency root after build process
yalc link # run from the root of your main project
Вы также можете подписаться и автоматически публиковать изменения из вашей зависимости.
Для получения дополнительной информации см. официальный файл readme.
Огромное спасибо Уэбберу! Да, yalc работает без каких-либо проблем, потрясающе. Я оставлю это открытым на некоторое время, на случай, если кто-нибудь знает способ, не требующий добавления еще одного инструмента в наш проект, а пока я буду использовать yalc, как вы предлагаете.