Перейти к содержимому

Структура проекта

Новый проект Astro, созданный с помощью мастера create astro, уже содержит набор файлов и папок. Другие вы будете создавать самостоятельно по мере развития проекта.

Ниже описано, как организован проект Astro, и приведены основные файлы, которые вы в нём найдёте.

Astro предлагает рекомендуемую структуру папок для вашего проекта. Корень любого проекта Astro должен содержать следующие директории и файлы:

  • src/* — исходный код вашего проекта (компоненты, страницы, стили, изображения и т. д.);
  • public/* — статические ресурсы, не требующие обработки (шрифты, иконки и т. д.);
  • package.json — манифест проекта;
  • astro.config.mjs — файл конфигурации Astro (рекомендуется);
  • tsconfig.json — файл конфигурации TypeScript (рекомендуется).

Типичная структура каталогов Astro выглядит следующим образом:

  • Директорияpublic/
    • robots.txt
    • favicon.svg
    • my-cv.pdf
  • Директорияsrc/
    • Директорияblog/
      • post1.md
      • post2.md
      • post3.md
    • Директорияcomponents/
      • Header.astro
      • Button.jsx
    • Директорияimages/
      • image1.jpg
      • image2.jpg
      • image3.jpg
    • Директорияlayouts/
      • PostLayout.astro
    • Директорияpages/
      • Директорияposts/
        • [post].astro
      • about.astro
      • index.astro
      • rss.xml.js
    • Директорияstyles/
      • global.css
    • content.config.ts
  • astro.config.mjs
  • package.json
  • tsconfig.json

Папка src/ — это место, где находится большая часть исходного кода вашего проекта. Она включает в себя:

Astro обрабатывает, оптимизирует и собирает файлы из папки src/, чтобы создать итоговый сайт, который отправляется в браузер. В отличие от папки public/, содержимое src/ проходит через процесс сборки.

Некоторые файлы (например, компоненты Astro) даже не отправляются в браузер «как есть», а рендерятся в статический HTML. Другие файлы (например, CSS) отправляются пользователю, но могут быть оптимизированы или объединены в общие файлы для повышения производительности.

Маршруты вашего сайта создаются путём добавления файлов поддерживаемых типов в эту директорию.

Компоненты — это переиспользуемые блоки кода для ваших HTML-страниц. Это могут быть компоненты Astro или компоненты UI-фреймворков, таких как React или Vue. Обычно все компоненты проекта группируются в этой папке.

Это стандартное соглашение для проектов Astro, но оно не является строгим требованием. Организуйте свои компоненты так, как вам удобно!

Макеты — это компоненты Astro, которые определяют структуру интерфейса, общую для одной или нескольких страниц.

Как и src/components, эта папка является общепринятым соглашением, но не обязательна.

Часто CSS или Sass файлы хранят в директории src/styles, но это также необязательно. Пока ваши стили находятся где-то внутри src/ и правильно импортированы, Astro сможет их обработать и оптимизировать.

Директория public/ предназначена для файлов и ресурсов, которые не должны обрабатываться в процессе сборки Astro. Файлы из этой папки копируются в итоговую сборку без изменений.

Это делает public/ идеальным местом для ресурсов, не требующих обработки, таких как некоторые изображения и шрифты, или специальных файлов вроде robots.txt и manifest.webmanifest.

Вы можете размещать CSS и JavaScript в папке public/, но имейте в виду, что эти файлы не будут оптимизированы или объединены в итоговой сборке.

Этот файл используется менеджерами пакетов JavaScript для управления зависимостями. В нём также определены скрипты для запуска Astro (например, npm run dev, npm run build).

Существует два типа зависимостей, которые можно указать в package.json: dependencies и devDependencies. В большинстве случаев для Astro они работают одинаково: все зависимости нужны на этапе сборки. Мы рекомендуем поначалу добавлять всё в dependencies и использовать devDependencies только если у вас есть для этого веская причина.

Для помощи в создании нового файла package.json ознакомьтесь с инструкциями по ручной установке.

Этот файл создаётся в каждом стартовом шаблоне и содержит настройки вашего проекта Astro. Здесь вы можете указать используемые интеграции, параметры сборки, настройки сервера и многое другое.

Astro поддерживает несколько форматов для файла конфигурации: astro.config.js, astro.config.mjs, astro.config.cjs и astro.config.ts. Мы рекомендуем использовать .mjs в большинстве случаев или .ts, если вы хотите писать конфигурацию на TypeScript.

Загрузка конфигурационного файла TypeScript выполняется с помощью tsm и учитывает настройки вашего tsconfig.

Полную информацию можно найти в справочнике по конфигурации.

Этот файл генерируется в каждом стартовом шаблоне и содержит параметры конфигурации TypeScript. Некоторые функции (например, импорт npm-пакетов) могут не поддерживаться в редакторе в полной мере без файла tsconfig.json.

Подробности о настройках можно найти в руководстве по TypeScript.