Компиляция TypeScript через tsc
-
Компиляция
Мы уже знакомы с утилитой
tsc
из пакета typescript, с ее помощью мы можем создавать файлы конфига.
Но основное ее предназначение это - компиляция TypeScript в JavaScript.Про добавление TypeScript в проект писал в этой теме.
// script.ts const user: string = 'User'; console.log(user);
Возьмем наш пример кода выше
script.ts
и выполним команду:./node_modules/.bin/tsc script.ts
И теперь рядом с файлом
.ts
появится файлscript.js
, который мы можем выполнить как в node.js так и в браузере.На заметку: Компилятору
tsc
не требуется указывать параметры — он самостоятельно находит и компилирует все TypeScript-файлы проекта.О package.json для TS
В отличие от простой команды, которую мы выполнили выше, реальные команды сборки и запуска часто бывают более запутанными и большими.
Чтобы не набирать их каждый раз вручную, их рекомендуется сохранять в разделе
scripts
файлаpackage.json
.Пример:
// package.json { ... "scripts": { "build": "tsc src/index.ts --declaration", "build:dev": "tsc src/index.ts --sourceMap", "watch": "tsc src/index.ts --watch" }, ... }
Прописав в команды, теперь мы можем выполнять их в консоли
npm run build
и другие команды. -
K kirilljsx сослался на эту тему в
-
K kirilljsx сослался на эту тему в
-
У меня в проекте несколько точек входа — нужно ли для каждого файла прописывать отдельную команду в package.json? Или есть способ компилировать все сразу?
-
А почему в примере компиляции отдельного файла используется прямой вызов tsc, а не через npm script? Это неудобно каждый раз писать полный путь к node_modules.
-
Потому что обычно tsc устанавливают глобально (npm i -g typescript) для простоты использования. Но если работаешь в проекте, лучше использовать npm scripts - так все участники будут использовать одинаковую версию компилятора.
-
Лучше создать tsconfig.json и указать там корневую папку с исходниками. Тогда команда tsc без параметров скомпилирует все файлы. В npm scripts можно просто прописать “build”: “tsc”.
-
Не могу понять, а в чем разница между флагами --declaration и --sourceMap? Когда какой использовать нужно? В чем тут преимущества?
-
–declaration генерирует .d.ts файлы для типов (нужно для библиотек), а --sourceMap создает карты источников для отладки — связывают скомпилированный JS с исходным TS в devtools.
-
Как настроить watch mode для всего проекта, а не одного файла? В примере указан конкретный файл, но у меня их десятки.
-
Достаточно просто запустить tsc --watch (или tsc -w) в корне проекта с tsconfig.json. Компилятор будет отслеживать изменения во всех TypeScript-файлах.
-
Теперь понял, что лучше использовать tsconfig и npm scripts — это действительно удобнее, чем компилировать каждый файл вручную.
© 2024 - 2025 ExLends, Inc. Все права защищены.