Я пытаюсь научить себя Angular, и при обновлении своих версий (node, angular-cli,...) я наткнулся на 4 разные версии Typescript. Может ли кто-нибудь сказать мне разницу?
В левой части следующего скриншота находится vscode. Верхняя часть — это результат «ng version». Отсечка данных со скриншота была:
- Angular CLI: 7.3.9
- Node: 10.15.3
- OS: win32 x64
- Angular: 7.1.4
... common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
С правой стороны приглашение cmd, которое я открыл в своем пользовательском местоположении.
Я попытаюсь дать свое объяснение, пожалуйста, поправьте меня :)
3.1.6
Я бы сказал, что это версия Typescript, которую я использую в своем проекте.3.2.2
Тогда это может быть моя глобальная версия (та, что сейчас установлена в %AppData%\Roaming\npm
)3.4.5
... понятия не имею об этом. Я только что посмотрел его, и на самом деле это самая новая доступная версия на момент написания этого поста. Это выше, чем то, что поддерживает Angular 7.1.4 (3.3 поддерживается Angular 8.0.0-beta.9, как я узнал, здесь... это критическое изменение, поэтому, насколько я понимаю, это вообще не должно работать). Интересно, не отображает ли это число что-то еще, кроме машинописного текста (но что?)3.2.4
это меня озадачивает, я понятия не имею, откуда оно взялосьЯ также запускал npm list typescript локально и глобально. Не уверен, что это значит (как я уже сказал, я все еще пытаюсь научиться...), но вот результат:
тот, что слева (это код визуальной студии, открытый в моем проекте)
все, что напечатано ng version
, имеет значение. Это тот, который ng
будет выполнять для сборки проекта, и этот версия остается неизменным при изменении окружающая обстановка. Например; если вы строите на другой машине после запуска npm install
. Вы не должны изменять эту версию вручную, потому что Angular требует определенной версии и обновляет ее при запуске ng upgrade
для следующего выпуска Angular.
Это довольно аккуратный анализ, и вы почти правильно его объяснили. Что касается недостающих частей, проверьте объяснение ниже:
3.1.6, как вы правильно заметили, используется в вашем проекте.
3.2.2 — это тот, который вы установили глобально.
3.2.4 — это машинописный текст, установленный angular-cli.
3.4.5 — это последняя версия, поддерживаемая вашей текущей версией Visual Code. IntelliSense, предоставляемый Visual Code, будет использовать эту версию.
Насколько мне известно, ваш проект Angular будет работать на TSC версии 3.1.6, поскольку на него ссылаются локально. (Поправьте меня, если я ошибаюсь)
Вам не нужно беспокоиться о критических изменениях, поскольку версия 3.4.5 предназначена только для VS Code, обеспечивающего интеллектуальный смысл.
Версия 3.1.6
Вы правы, это ваша локальная версия Typescript, специфичная для вашего проекта.
Версия 3.2.2
Это глобальная версия Typescript. Вот почему он не меняется в обоих местах, когда вы вводите tsc --version
Есть некоторые пакеты, для правильной работы которых требуются определенные версии других библиотек.
Версия 3.2.4
Это зависимость от @angular/cli
, то есть когда вы установите @angular/cli
, она автоматически установит эту версию typescript
в качестве зависимости от рабочего свойства.
Версия 3.4.5
Он отображается в правом углу кода VS. Код Vs поставляется с собственной версией Typescript, которую он использует внутри, потому что редактор написан на Typescript.
какой скриншот из вашего углового проекта?