логотип 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 иконка
    Курсы
    ГлавнаяКаталог курсовFrontendBackendFullstack
    Практика
    КарьераПроектыPurpleПлюс
    Материалы
    БлогБаза знаний
    Документы
    Договор офертаПолитика конфиденциальностиПроверка сертификатаМиграция курсовРеферальная программа
    Реквизиты
    ИП Ларичев Антон АндреевичИНН 773373765379contact@purpleschool.ru

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

  • Курсы
    Иконка слояПерейти в каталог курсов
    • 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
      • Продвинутый JavaScript
      • Telegraf.js Иконка курсаСкоро!
      • TypeScript с нуля
      • Node.js с нуля
      • Nest.js с нуля
    • Картинка группы Golang

      Golang


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

      C#


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

      Python


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

      PHP


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

      Общее


      • Основы разработки
      • 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
    • Картинка группы Flutter

      Flutter


      • Основы Flutter Иконка курсаСкоро!
    • Картинка группы 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 599

    Комментарии

    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