Как запустить файлы 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'
Как предотвратить установку "devDependencies" модулей NPM для Node.js (package.json)?
Ошибка "npm WARN package.json: Нет поля repository"
nvm постоянно "забывает" Node.js в новой сессии терминала
Лучшие практики обработки исключений в Node.js