Используется ли другая версия tsc при запуске npm?

У меня есть VS Code и проект Node.js с использованием Typescript. В моем package.json script Блок есть пункт:

"build-ts": "tsc"

Если я бегу равнине tsc на встроенной командной строке терминала, компиляция в порядке. Но если я призываю npm run build-ts, он обнаруживает синтаксические ошибки в одном файле. Кажется, причина ошибки в более старой версии компилятора.

Если я бегу tsc -v в командной строке отображается версия 2.9.2. Есть ли npm run использовать другую версию TSC где-нибудь?

Кстати, есть npm run из пакета npm-run-script? Я побежал npm list и я не смог найти npm-run-script локально или глобально.

1 ответ

Решение

Вопрос был решен с помощью комментариев, но я оставлю этот ответ здесь как более подробный вариант.

  1. Когда вы выполняете npm run (или же npm run-script), он ищет исполняемые файлы, установленные локально в первую очередь. Это позволяет использовать разные версии для этих исполняемых файлов для каждого проекта (например, если какая-то библиотека несовместима с новой версией tsc). Так что если tsc устанавливается как зависимость (или зависимость dev), npm run выполнит его, а не тот, который установлен глобально. То же самое относится и к gulp и другие инструменты CLI.

  2. npm run-script это не пакет, это внутренний npm команда, так же, как install и другие. Вы можете проверить это с npm help - эта команда показывает список всех встроенных команд одновременно.

Другие вопросы по тегам