#javascript #typescript #lerna
#язык JavaScript #машинописный текст #lerna
Вопрос:
Мой проект имеет такую структуру:
workspace |__pkg1 |__tsconfig.json |__package.json |__ts/ |__pkg2 |__tsconfig.json |__package.json |__ts/ |__lerna.json |__package.json |__tsconfig.json
В workspace/package.json я указал версию машинописного текста «^4.2.3». Чтобы установить зависимость для всех пакетов, выполните команду в разделе Каталог рабочей области:
npm install amp; lerna bootstrap amp;amp; lerna run build
«lerna bootstrap» установит все зависимости для pkg1 и pkg2, «сборка запуска lerna» (эквивалентно запуску «npx tsc» в pkg1 и pkg2) скомпилирует машинописный текст в папку ts/ из pkg1 и pkg2. Оказалось, что версия tsc в каталоге workspace действительно 4.2.3, но в pkg1 и pkg2 версия машинописного текста-4.5.2
cd pkg1 amp;amp; npx tsc -v # output is Version 4.5.2
Я попытался (1) изменить «^4.2.3» на «4.2.3» в workspace/package.json, (2) явно указать версию машинописного текста в package.json из pkg1 и pkg2. (3) удалите все файлы.json с блокировкой пакетов. Однако ни один из них не работает. Как я могу это исправить?
На практике мне нужно создать чистый образ докера для этого проекта. У него есть несколько pkg, поэтому я не хочу устанавливать typescript по одному в каждом каталоге пакета.
Ответ №1:
попробуйте удалить весь код, связанный с машинописным текстом, из package-lock.json и npm снова установите и проверьте. Я думаю, что это должно решить проблему, так как я тоже сталкивался с этим раньше.
Комментарии:
1. Я также удалил все файлы package-lock.json в рабочей области, pkg1 и pkg2, все тот же результат. Более новая версия устанавливается автоматически при запуске начальной загрузки lerna