Компилятор Angular требует TypeScript версии >=2.7.2 и <2.8.0, но найдена версия 2.8.3
Я начал получать следующую ошибку в своем приложении на Angular:
Компилятор Angular требует TypeScript версии >=2.7.2 и <2.8.0, но найдена версия 2.8.3.
Когда я пытаюсь понизить версию TypeScript до нужной, выполняя команду:
npm install -g typescript@2.7.2
то в выводе пишется, что пакет был обновлён.
Однако, когда я проверяю версию TypeScript с помощью команды:
npm view typescript version
я по-прежнему вижу версию 2.8.3.
Я даже попытался удалить TypeScript полностью, выполнив команду:
npm uninstall -g typescript
Но при повторной проверке версии TypeScript с той же командой:
npm view typescript version
я всё равно вижу 2.8.3.
Каковы команды, чтобы корректно удалить и восстановить TypeScript на предыдущую версию, например, 2.7.2?
Я использую Node.js версии 10.0.0 и npm версии 6.0.1.
Когда я запускаю команду:
npm list -g typescript
я вижу правильную версию 2.7.2, но версия 2.8.3 все еще как-то установлена глобально.
5 ответ(ов)
Вам следует выполнить команду npm install typescript@'>=2.7.2 <2.8.0'
. Это установит необходимую версию TypeScript для вашего проекта. Убедитесь, что вы запускаете эту команду внутри папки вашего проекта Angular.
Если вы используете Windows, используйте двойные кавычки вместо одинарных, вот так:
npm install typescript@">=2.7.2 <2.8.0"
В противном случае вы получите сообщение об ошибке The system cannot find the file specified.
.
Я сделал следующее:
Удалил вручную папку
node_modules
.Удалил вручную файл
package-lock.json
.В файле
package.json
убедился, что зависимость TypeScript установлена как:"typescript": "2.7.2"
Выполнил команду
npm cache clean -f
.Запустил
npm install
.
Это помогло мне.
Установка версии @angular/compiler-cli
"7.0.0-beta.4"
решила эту проблему. Я использую typescript
версии "3.0.3"
.
Чтобы обновить, выполните следующие команды в терминале.
Установите последнюю версию NPM:
npm install npm@latest -g
Запустите аудит:
npm audit
Обновите NPM:
npm update
Запустите скрипт NPM:
npm start
Теперь ваш компилятор готов.
Проблема, с которой вы столкнулись, связана с несовместимостью зависимостей между Angular и TypeScript. Пакет @angular/compiler-cli
требует версию typescript
, которая находится в диапазоне от 2.7.2
до, но не включая, 2.10
. Однако, согласно сообщению об ошибке, вы пытаетесь установить typescript
версии 3.1.3
, что и вызывает проблему.
Чтобы решить эту проблему, попробуйте следующее:
Убедитесь, что вы действительно установили нужную версию TypeScript. Запустите команду:
npm install typescript@2.9.2
Проверьте ваш
package.json
, чтобы убедиться, что там указана правильная версия TypeScript. Если вы видите, что устанавливается другая версия, возможно, другая зависимость требует более новую версию.В качестве временного решения вы можете также удалить папку
node_modules
и файлpackage-lock.json
, а затем выполнить установку зависимостей заново:rm -rf node_modules package-lock.json npm install
Если это не решает вашу проблему, попробуйте явно указать версию перед выполнением
ng update
. Например:ng update @angular/core @angular/cli --all --force
Также следует учитывать, что версии Angular и TypeScript должны быть совместимыми, поэтому возможно, вам стоит рассмотреть возможность обновления Angular до более новой версии, которая поддерживает TypeScript 3.x, если это возможно для вашего проекта.
Как указать необходимую версию Node.js в файле package.json?
@Directive против @Component в Angular
Разница между ViewEncapsulation.Native, ViewEncapsulation.None и ViewEncapsulation.Emulated в Angular
Ошибка в Angular 6: 'filter' не существует в типе 'Observable<Event>' при использовании router.events
Как использовать enum в компоненте Angular