несоответствие версии машинописного текста

#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