Структура проекта
Ваш новый 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 компоненты
- Компоненты UI-фреймворков (React и т.д.) (EN)
- Стили (CSS, Sass) (EN)
- Markdown
- Изображения, для оптимизации и обработки с помощью Astro (EN)
Astro обрабатывает, оптимизирует и объединяет в бандл ваши файлы из src/
, чтобы создать окончательный сайт, который отправляется в браузер. В отличие от статической директории public/
, файлы из src/
собираются в билд и обрабатываются с помощью Astro.
Некоторые файлы (например, Astro-компоненты) не отправляются в браузер в том виде, в котором они написаны, а вместо этого отображаются статическим HTML. Другие файлы (такие как CSS) отправляются в браузер, но могут быть оптимизированы или объединены в бандл с другими CSS-файлами для производительности.
В этом руководстве описываются практики, которые общеприняты в сообществе Astro. Однако единственной зарезервированной директорией в Astro является src/pages/
. Вы можете переименовывать любые другие директории и организовывать их так, как вам удобно.
src/pages
Заголовок раздела src/pagesЧтобы задать маршруты страниц для вашего сайта, добавьте файлы поддерживаемых типов в эту директорию.
src/pages
– это обязательная под-директория в вашем Astro-проекте. Без нее на вашем сайте не будет страниц и маршрутов!
src/components
Заголовок раздела src/componentsКомпоненты - это повторяющиеся блоки кода для ваших HTML-страниц. Это могут быть компоненты Astro или компоненты UI-фреймворка (EN) такие как React или Vue. Обычно принято группировать и упорядочивать все компоненты вашего проекта в этой папке.
Это общепринятая практика для Astro-проектов, но она не является обязательной. Вы вольны организовывать компоненты своего проекта так, как вам удобно!
src/layouts
Заголовок раздела src/layoutsМакеты - это компоненты Astro, которые задают UI-структуру, используемую на одной или нескольких страницах.
Как и src/components
, эта директория является общепринятой, но не обязательной.
src/styles
Заголовок раздела src/stylesОбщепринято хранить ваши CSS или Sass файлы в директории src/styles
, но это не обязательно. Пока ваши стили находятся где-то внутри директории src/
и правильно импортированы, Astro будет обрабатывать и оптимизировать их.
public/
Заголовок раздела public/Директория public/
предназначена для файлов и материалов в вашем проекте, которые Astro не должен обрабатывать во время сборки. Файлы в этой папке будут скопированы в папку сборки без изменений, после чего будет создан билд вашего сайт.
Это поведение делает public/
идеальным местом для материалов, которые не нуждаются в обработке, например картинки и шрифты или специальные файлы, такие как robots.txt
и manifest.webmanifest
.
Вы можете поместить CSS и JavaScript в вашу директорию public/
, но имейте в виду, что эти файлы не будут объединены в бандл или оптимизированы в вашей конечной сборке.
Как правило, любой CSS или JavaScript, который вы пишете самостоятельно, должен находиться в директории src/
.
package.json
Заголовок раздела package.jsonЭто файл, используемый менеджерами пакетов JavaScript для управления зависимостями. Он также определяет скрипты, которые обычно используются для запуска Astro (например, npm run dev
, npm run build
).
Вы можете указать два вида зависимостей в файле package.json
: dependencies
и devDependencies
. В большинстве случаев они работают одинаково: Astro нуждается во всех зависимостях на этапе сборки, и ваш менеджер пакетов установит оба. Мы рекомендуем поместить все зависимости в dependencies
для начала, и использовать devDependencies
только при наличии конкретной необходимости.
Чтобы создать новый файл package.json
для вашего проекта, ознакомьтесь с инструкцией по ручной установке.
astro.config.mjs
Заголовок раздела astro.config.mjsЭтот файл создается в каждом стартовом шаблоне и включает в себя параметры конфигурации для вашего проекта Astro. Здесь вы можете указать используемые интеграции, параметры сборки, параметры сервера и многое другое.
Astro поддерживает несколько форматов файлов конфигурации JavaScript: astro.config.js
, astro.config.mjs
, astro.config.cjs
и astro.config.ts
. В большинстве случаев мы рекомендуем использовать .mjs
, либо .ts
если вы хотите писать конфигурации на TypeScript.
Загрузка файла конфигурации на TypeScript обрабатывается с помощью tsm
и будет учитывать настройку tsconfig
вашего проекта.
См. Руководство по настройке Astro (EN) для детальной настройки.
tsconfig.json
Заголовок раздела tsconfig.jsonЭтот файл создается в каждом стартовом шаблоне и включает параметры конфигурации TypeScript для вашего Astro-проекта. Некоторые функции (такие как импорт пакетов npm) не полностью поддерживаются в редакторе без файла tsconfig.json
.
См. Руководство по TypeScript для деталей по настройке конфигурации.
Learn