Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. TypeScript
  5. Компиляция TypeScript через tsc

Компиляция TypeScript через tsc

Запланировано Прикреплена Закрыта Перенесена TypeScript
typescript
10 Сообщения 5 Постеры 88 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал в отредактировано kirilljsx
    #1

    Компиляция

    Мы уже знакомы с утилитой 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 и другие команды.

    1 ответ Последний ответ
    0
    • kirilljsxK kirilljsx сослался на эту тему в
    • kirilljsxK kirilljsx сослался на эту тему в
    • ВасилийВ Не в сети
      ВасилийВ Не в сети
      Василий
      написал в отредактировано
      #2

      У меня в проекте несколько точек входа — нужно ли для каждого файла прописывать отдельную команду в package.json? Или есть способ компилировать все сразу?

      1 ответ Последний ответ
      0
      • Алекс44А Не в сети
        Алекс44А Не в сети
        Алекс44
        написал в отредактировано
        #3

        А почему в примере компиляции отдельного файла используется прямой вызов tsc, а не через npm script? Это неудобно каждый раз писать полный путь к node_modules.

        1 ответ Последний ответ
        0
        • В Не в сети
          В Не в сети
          Ванек
          написал в отредактировано
          #4

          Потому что обычно tsc устанавливают глобально (npm i -g typescript) для простоты использования. Но если работаешь в проекте, лучше использовать npm scripts - так все участники будут использовать одинаковую версию компилятора.

          1 ответ Последний ответ
          0
          • WowkW Не в сети
            WowkW Не в сети
            Wowk
            написал в отредактировано
            #5

            Лучше создать tsconfig.json и указать там корневую папку с исходниками. Тогда команда tsc без параметров скомпилирует все файлы. В npm scripts можно просто прописать “build”: “tsc”.

            1 ответ Последний ответ
            0
            • Алекс44А Не в сети
              Алекс44А Не в сети
              Алекс44
              написал в отредактировано
              #6

              Не могу понять, а в чем разница между флагами --declaration и --sourceMap? Когда какой использовать нужно? В чем тут преимущества?

              1 ответ Последний ответ
              0
              • В Не в сети
                В Не в сети
                Ванек
                написал в отредактировано
                #7

                –declaration генерирует .d.ts файлы для типов (нужно для библиотек), а --sourceMap создает карты источников для отладки — связывают скомпилированный JS с исходным TS в devtools.

                1 ответ Последний ответ
                0
                • ВасилийВ Не в сети
                  ВасилийВ Не в сети
                  Василий
                  написал в отредактировано
                  #8

                  Как настроить watch mode для всего проекта, а не одного файла? В примере указан конкретный файл, но у меня их десятки.

                  1 ответ Последний ответ
                  0
                  • WowkW Не в сети
                    WowkW Не в сети
                    Wowk
                    написал в отредактировано
                    #9

                    Достаточно просто запустить tsc --watch (или tsc -w) в корне проекта с tsconfig.json. Компилятор будет отслеживать изменения во всех TypeScript-файлах.

                    1 ответ Последний ответ
                    0
                    • Алекс44А Не в сети
                      Алекс44А Не в сети
                      Алекс44
                      написал в отредактировано
                      #10

                      Теперь понял, что лучше использовать tsconfig и npm scripts — это действительно удобнее, чем компилировать каждый файл вручную.

                      1 ответ Последний ответ
                      0

                      Категории

                      • Главная
                      • Новости
                      • Фронтенд
                      • Бекенд
                      • Языки программирования

                      Контакты

                      • Сотрудничество
                      • info@exlends.com
                      • Наш чат
                      • Наш ТГ канал

                      © 2024 - 2025 ExLends, Inc. Все права защищены.

                      Политика конфиденциальности
                      • Войти

                      • Нет учётной записи? Зарегистрироваться

                      • Войдите или зарегистрируйтесь для поиска.
                      • Первое сообщение
                        Последнее сообщение
                      0
                      • Лента
                      • Категории
                      • Последние
                      • Метки
                      • Популярные
                      • Пользователи
                      • Группы