Как запустить файлы TypeScript из командной строки?
Я сталкиваюсь с удивительной трудностью в поиске ответа на этот вопрос. В стандартном Node.JS вы можете запустить любой js-файл с помощью команды node path/to/file.js, в CoffeeScript используется команда coffee hello.coffee, а для ES6 — babel-node hello.js. Как же сделать то же самое с TypeScript?
В моем проекте есть файл tsconfig.json, который используется Webpack/ts-loader для сборки удобного пакета для браузера. Однако мне нужна подготовительная стадия, запускаемая из консоли, которая использовала бы некоторые .ts файлы из проекта для генерации схемы. Но я не могу запустить отдельный файл TypeScript без компиляции всего проекта. Как это можно сделать?
5 ответ(ов)
Выполните следующие команды и установите необходимые пакеты глобально:
npm install -g ts-node typescript '@types/node'
Теперь выполните следующую команду, чтобы запустить файл TypeScript:
ts-node typescript-file.ts
Убедитесь, что вы заменили typescript-file.ts на имя вашего файла TypeScript. После этого ваш скрипт должен выполниться.
Вы также можете попробовать tsx.
tsx — это команда CLI (альтернатива node) для беспрепятственного выполнения TypeScript, она основана на esbuild, поэтому работает очень быстро.
Вот ссылка на репозиторий: esbuild-kit/tsx
Пример использования:
npx tsx ./script.ts
Вот шаги, которые вам нужно выполнить:
Сначала установите TypeScript:
npm install -g typescriptСоздайте файл с именем
helloworld.tsи добавьте в него следующий код:function hello(person) { return "Hello, " + person; } let user = "Aamod Tiwari"; const result = hello(user); console.log("Result", result);Откройте командную строку и выполните следующую команду:
tsc helloworld.tsЗатем выполните команду:
node helloworld.jsРезультат будет отображен в консоли.
Чтобы дополнить ответ @Aamod выше, если вы хотите использовать одну команду для компиляции и запуска вашего кода, вы можете воспользоваться следующими командами:
Для Windows:
tsc main.ts | node main.js
Для Linux / macOS:
tsc main.ts && node main.js
Таким образом, вы сможете скомпилировать main.ts и сразу же запустить скомпилированный main.js.
На май 2022 года ts-node действительно поддерживает ES модули. Для использования необходимо выполнить следующую команду:
npx ts-node --esm file.ts
Также вам, вероятно, потребуется добавить в ваш package.json строку "type": "module",. Учтите, что некоторые импорты могут работать некорректно, если вы не включите experimental-specifier-resolution=node.
Дополнительные детали можно найти в документации к ts-node.
TypeScript ошибка TS2304: не удается найти имя 'require'
Разница между "require(x)" и "import x"
Неизвестное расширение файла ".ts" для файла TypeScript
Получение высоты элемента в Vue.js
Как остановить Babel от трансформации 'this' в 'undefined' и добавления "use strict"