логотип PurpleSchool
  • Бесплатно
      Карта развитияОсновы разработкиCSS Flexbox
    • Новостные рассылкиИконка стрелки
    • База знанийИконка стрелки
    • Карьерные пути
      • Frontend React разработчик
      • Frontend Vue разработчик
      • Backend разработчик Node.js
      • Fullstack разработчик React / Node.js
      • Mobile разработчик React Native
      • Backend разработчик Golang
      • Devops инженер
    • О нас
      • Отзывы
      • Реферальная программа
      • О компании
      • Контакты
    • Иконка открытия меню
      • Сообщество
      • PurpleПлюс
      • AI тренажёр
      • Проекты
    логотип PurpleSchool
    ютуб иконка
    Telegram иконка
    VK иконка
    VK иконка
    Курсы
    ГлавнаяКаталог курсовFrontendBackendFullstack
    Практика
    КарьераПроектыPurpleПлюс
    Материалы
    БлогБаза знаний
    Документы
    Договор офертаПолитика конфиденциальностиПроверка сертификатаМиграция курсовРеферальная программа
    Реквизиты
    ИП Ларичев Антон АндреевичИНН 773373765379contact@purpleschool.ru

    PurpleSchool © 2020 -2026 Все права защищены

  • Курсы
    Иконка слояПерейти в каталог курсов
    • FrontendИконка стрелки
    • BackendИконка стрелки
    • DevOpsИконка стрелки
    • MobileИконка стрелки
    • ТестированиеИконка стрелки
    • Soft-skillsИконка стрелки
    • ДизайнИконка стрелки
    • Картинка группы Общее

      Общее


      • Основы разработки
      • Основы Git
      • HTML и CSS
      • CSS Flexbox
      • Основы JavaScript
      • Продвинутый JavaScript
      • TypeScript с нуля
      • Neovim
    • Картинка группы React

      React


      • React и Redux Toolkit
      • Zustand
      • Next.js - с нуля
      • Feature-Sliced Design
    • Картинка группы Vue.js

      Vue.js


      • Vue 3 и Pinia
      • Nuxt
      • Feature-Sliced Design
    • Картинка группы Angular

      Angular


      • Angular 19 Иконка курсаСкоро!
    • Картинка группы Node.js

      Node.js


      • Основы Git
      • Основы JavaScript
      • Telegraf.js Иконка курсаСкоро!
      • Продвинутый JavaScript
      • TypeScript с нуля
      • Node.js с нуля
      • Nest.js с нуля
    • Картинка группы Golang

      Golang


      • Основы Git
      • Основы Golang
      • Продвинутый Golang
      • Golang - Templ Fiber HTMX
    • Картинка группы C#

      C#


      • Основы C#
    • Картинка группы PHP

      PHP


      • Основы PHP Иконка курсаСкоро!
    • Картинка группы Python

      Python


      • Старт в Python
      • Основы Python
      • Продвинутый Python
      • FastAPI Иконка курсаСкоро!
    • Картинка группы Общее

      Общее


      • Основы разработки
      • Docker и Ansible
      • Kubernetes и Helm
      • Микросервисы
      • Neovim
    • Картинка группы Общее

      Общее


      • Основы разработки
      • Основы Git
      • Основы Linux
      • Bash скрипты
      • Docker и Ansible
      • Kubernetes и Helm
      • Микросервисы
      • Neovim
    • Картинка группы Общее

      Общее


      • Основы разработки
      • Основы Git
      • Neovim
    • Картинка группы React Native

      React Native


      • HTML и CSS
      • Основы JavaScript
      • Продвинутый JavaScript
      • TypeScript с нуля
      • React и Redux Toolkit
      • React Native и Expo Router
    • Картинка группы Swift

      Swift


      • Основы Swift и iOS
    • Картинка группы Общее

      Общее


      • Продвинутое тестирование Иконка курсаСкоро!
      • Основы тестирования ПО
    • Картинка группы Общее

      Общее


      • Собеседование
      • Современный Agile
    • Картинка группы Figma

      Figma


      • Основы дизайна
      • Продвинутый дизайн Иконка курсаСкоро!
  • логотип PurpleSchool
    • Сообщество
    • PurpleПлюс
    • AI тренажёр
    • Проекты
    Главная
    Сообщество
    Turborepo 2.0: Революция в управлении монорепозиториями JavaScript и TypeScript

    Turborepo 2.0: Революция в управлении монорепозиториями JavaScript и TypeScript

    Аватар автора Turborepo 2.0: Революция в управлении монорепозиториями JavaScript и TypeScript

    Дмитрий

    Иконка календаря25 июля 2024
    TurborepoJavaScriptTypeScriptmiddleИконка уровня middle
    Картинка поста Turborepo 2.0: Революция в управлении монорепозиториями JavaScript и TypeScript

    В мире современной разработки программного обеспечения эффективное управление крупными проектами становится все более важным. Особенно это касается JavaScript и TypeScript экосистем, где монорепозитории (monorepos) стали популярным подходом к организации кода. В этой статье мы подробно рассмотрим обновленную Turborepo 2.0 - инструмент, который призван революционизировать работу с монорепозиториями и значительно улучшить опыт разработчиков.

    Что такое Turborepo и почему это важно?

    Прежде чем мы углубимся в новые функции Turborepo 2.0, давайте разберемся, что такое Turborepo и почему он так важен для современных разработчиков.

    Turborepo - это высокопроизводительная система сборки, разработанная специально для JavaScript и TypeScript монорепозиториев. Монорепозиторий - это подход к организации кода, при котором несколько проектов или пакетов хранятся в одном репозитории. Этот подход имеет ряд преимуществ, таких как упрощение управления зависимостями, облегчение совместной работы и повышение согласованности кода.

    Однако, управление монорепозиторием может быть сложной задачей, особенно когда речь идет о больших проектах с множеством зависимостей и сложными процессами сборки. Именно здесь на помощь приходит Turborepo.

    Turborepo решает следующие ключевые проблемы:

    1. Производительность: Turborepo использует умное кэширование и параллельное выполнение задач, что значительно ускоряет процессы сборки и тестирования.
    2. Масштабируемость: С ростом проекта Turborepo помогает поддерживать его управляемость и эффективность.
    3. Согласованность: Turborepo обеспечивает единый подход к управлению задачами и скриптами во всем монорепозитории.
    4. Простота использования: Несмотря на свою мощь, Turborepo остается относительно простым в настройке и использовании.

    Что нового в Turborepo 2.0?

    Turborepo 2.0 представляет собой значительное обновление, которое вносит ряд важных улучшений и новых функций. Давайте подробно рассмотрим каждое из них.

    1. Новый пользовательский интерфейс терминала

    Одно из самых заметных изменений в Turborepo 2.0 - это совершенно новый пользовательский интерфейс терминала. Этот интерфейс был разработан на основе обратной связи от сообщества разработчиков и призван значительно улучшить опыт работы с Turborepo.

    Улучшенная ясность логов

    В предыдущих версиях Turborepo логи всех задач выводились в виде непрерывного потока, что могло быть перегружающим и затрудняло понимание происходящего с конкретной задачей. В Turborepo 2.0 эта проблема решена элегантным способом.

    Теперь вы можете выбирать отдельные задачи с помощью клавиш со стрелками и просматривать их логи по отдельности. Это значительно упрощает чтение и анализ логов, позволяя сосредоточиться на нужной информации.

    Интерактивные задачи

    Еще одно важное улучшение - поддержка интерактивных задач. В предыдущих версиях Turborepo скрипты были "заперты" внутри процесса turbo, что не позволяло взаимодействовать с ними напрямую. Теперь эта проблема решена.

    В Turborepo 2.0 вы можете входить в оболочку отдельных задач и передавать им ввод через stdin, просто набирая текст в интерфейсе. Это открывает новые возможности для работы с различными инструментами, такими как Jest или Vitest для тестирования, Drizzle или Prisma для управления базами данных, и многими другими.

    Чтобы сделать задачу интерактивной, нужно добавить параметр "persistent": true в ее определение в файле turbo.json:

    {
      "tasks": {
        "dev": {
          "cache": false,
          "persistent": true
        }
      }
    }
    

    После этого вы сможете взаимодействовать с задачей, выбрав ее в интерфейсе и нажав Enter для входа в ее оболочку. Для выхода из оболочки задачи используйте комбинацию CTRL+Z.

    Этот новый функционал особенно полезен для задач разработки, где часто требуется интерактивное взаимодействие с инструментами.

    2. Режим наблюдения (Watch Mode)

    Одной из самых ожидаемых функций в Turborepo 2.0 стал режим наблюдения (Watch Mode). Эта функция призвана решить проблему отсутствия встроенных "наблюдателей" во многих популярных инструментах разработки.

    Watch Mode в Turborepo 2.0 позволяет автоматически перезапускать задачи при изменении исходного кода. Это работает с учетом графа зависимостей вашего проекта и конфигурации в turbo.json, обеспечивая корректное выполнение всех связанных задач.

    Пример использования Watch Mode:

    turbo watch dev lint test
    

    Эта команда запустит задачи dev, lint и test в режиме наблюдения. Теперь, когда вы внесете изменения в код, Turborepo автоматически перезапустит необходимые задачи, обеспечивая быструю обратную связь и повышая эффективность разработки.

    3. Обновленная документация

    Вместе с выпуском Turborepo 2.0 была полностью переработана и улучшена документация. Новая документация учитывает отзывы пользователей и включает в себя:

    1. Более подробные объяснения основ работы с монорепозиториями
    2. Пошаговые руководства по интеграции Turborepo с популярными инструментами разработки
    3. Улучшенную структуру информации и более эффективный поиск

    Эти изменения призваны сделать работу с Turborepo более понятной и доступной как для новичков, так и для опытных разработчиков.

    Иконка глаза3 957

    Комментарии

    0

    Постройте личный план изучения JavaScript Advanced - продвинутые концепции языка и ООП до уровня Middle — бесплатно!

    JavaScript Advanced - продвинутые концепции языка и ООП — часть карты развития Frontend, Backend, Mobile

    • step100+ шагов развития
    • lessons30 бесплатных лекций
    • lessons300 бонусных рублей на счет

    Бесплатные лекции

    Лучшие курсы по теме

    изображение курса

    TypeScript с нуля

    Антон Ларичев
    AI-тренажеры
    Практика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.8
    3 999 ₽ 6 990 ₽
    Подробнее
    изображение курса

    React и Redux Toolkit

    Антон Ларичев
    AI-тренажеры
    Практика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.8
    3 999 ₽ 6 990 ₽
    Подробнее
    изображение курса

    Neovim

    Антон Ларичев
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.8
    3 999 ₽ 6 990 ₽
    Подробнее
    Иконка чипа+4