Tsc не распознается как внутренняя или внешняя команда

Я обновил с VSCode 0.10.6 до 0.10.8 и впервые попытался использовать Typescript. К сожалению, я, когда я говорю VSCode для сборки, получаю ошибку:

tsc не распознается как внутренняя или внешняя команда...

Вот необходимые сведения:

  • Я создал новый проект HelloWorld в соответствии с инструкциями VS Code. Это включало:
    • Я запустил npm init для нового package.json
    • Я побежал npm i --save-dev typescript, потому что хочу локальную установку, а не глобальную установку.
    • Я создал файл launch.json для node.js.
    • Я создал файл tasks.json с заданными настройками для tsc.
  • Я сделал файл settings.json, как показано здесь. Это не помогло.
  • У меня установлено приложение Visual Studio 2015, но я не установил расширение Typescript любого типа. Когда я набираю "where tsc" в командной строке разработчика, он отвечает "не смог найти". Я предполагаю, что это хорошо.

Я перезапустил VSCode (несколько раз). Что мне не хватает? Что еще нужно сделать?

Update

Я попробовал решение, предлагаемое @zlumer. Это удалось сделать компилятором Typescript, но затем он вызвал тысячи ошибок. Чтобы исправить это, мне также пришлось настроить tsconfig.json, чтобы исключить папку node_modules:

"exclude": [
    "node_modules"
]

Ответ 1

Проблема заключается в том, что tsc не находится в вашем PATH, если локально установлен.

Вы должны изменить свой .vscode/tasks.json, чтобы включить полный путь к tsc.

Линия для изменения, вероятно, равна "command": "tsc".

Вы должны изменить его на "command": "node" и добавить следующие аргументы в ваши аргументы: "args": ["${workspaceRoot}\\node_modules\\typescript\\bin\\tsc"] (в Windows).

Это даст команду VSCode:

  • Запустить NodeJS (он должен быть установлен глобально).
  • Пропустите локальную установку Typescript в качестве script для запуска.

(что в значительной степени соответствует исполняемому файлу tsc)

Вы уверены, что не хотите устанавливать Typescript глобально? Это должно облегчить задачу, особенно если вы только начинаете ее использовать.

Ответ 2

Может быть причина того, что Typescript не установлен глобально, поэтому установите его

npm install -g typescript // installs typescript globally

Если вы хотите конвертировать .ts файлы в .js, сделайте это в соответствии с вашими потребностями

tsc file.ts // file.ts will be converted to file.js file
tsc         // all .ts files will be converted to .js files in the directory
tsc --watch // converts all .ts files to .js, and watch changes in .ts files

Ответ 3

В файле VSCode tasks.json "command": "tsc" попытается найти команду tsc windows script в некоторой папке, которую она считает вашей папкой модулей.

Если вы знаете, где хранится команда npm install -g typescript или npm install typescript, я бы рекомендовал заменить:

"command": "tsc"

с

"command": "D:\\Projects\\TS\\Tutorial\\node_modules\\.bin\\tsc"

где D:\\...\\bin - это папка, содержащая исполняемые файлы tsc windows

Определит, где мой vscode на самом деле указывает прямо сейчас, чтобы найти tsc и исправить его, я думаю.

Ответ 4

В качестве альтернативы вы можете использовать npm, который автоматически смотрит в папку .bin. Затем вы можете использовать tsc

Ответ 5

Вы пропустили установку машинописного текста, просто запустите команду ниже и попробуйте tsc --init

npm install -g typescript

Ответ 6

Я тоже столкнулся с той же проблемой. Используйте командную строку nodeJS вместо командной строки Windows.

Шаг 1: Выполнить npm install -g typescript

Шаг 2: tsc filename.ts

Новый файл будет иметь то же имя и другое расширение, что и ".js"

Шаг 3: node filename.js

Вы можете увидеть вывод на экране. Меня устраивает.

Ответ 7

Для окон

После установки машинописи глобально

npm install typescript -g 

просто найдите "командную строку node.js"

введите командную строку

tsc -v 

Здесь мы видим, что команда tsc работает, теперь перейдите к вашей папке и введите

tsc filename.ts 

он соответствует TS в файл JS.