Структура проекта
Ваш новый проект Astro, созданный с помощью мастера командной строки create-astro
, уже включает в себя некоторые файлы и папки.
Другие вы создадите сами и добавите в существующую файловую структуру Astro.
Вот как организован проект Astro, и некоторые файлы, которые вы найдете в своем новом проекте.
Директории и Файлы
Заголовок раздела Директории и ФайлыAstro использует определенную структуру папок для вашего проекта. В корне каждого проекта Astro должны быть следующие директории и файлы:
src/*
- Исходный код вашего проекта (компоненты, страницы, стили, и т.д.)public/*
- Статичные файлы (шрифты, иконки, и т.д.)package.json
- Манифест проекта.astro.config.mjs
- Файл конфигурации Astro. (рекомендуется)tsconfig.json
- Файл конфигурации TypeScript. (рекомендуется)
Пример дерева проекта
Заголовок раздела Пример дерева проектаСтруктура обычного Astro проекта может выглядеть так:
Директорияpublic/
- robots.txt
- favicon.svg
- social-image.png
Директорияsrc/
Директорияcomponents/
- Header.astro
- Button.jsx
Директорияlayouts/
- PostLayout.astro
Директорияpages/
Директорияposts/
- post1.md
- post2.md
- post3.md
- index.astro
Директорияstyles/
- global.css
- astro.config.mjs
- package.json
- tsconfig.json
Директория src/
это место, где находится большая часть исходного кода вашего проекта. Сюда входят:
- Страницы
- Макеты
- Astro компоненты
- Компоненты UI фреймворков (React и т. д.) (EN)
- Стили (CSS, Sass) (EN)
- Markdown
Astro обрабатывает, оптимизирует и объединяет ваши файлы из src/, чтобы создать окончательный веб-сайт, который отправляется в браузер. В отличие от статической директории public/, ваши файлы из src/ собираются и обрабатываются Astro.
Некоторые файлы (например, Astro компоненты) не отправляются в браузер в том виде, в каком они написаны, а вместо этого отображаются в статическом HTML. Другие файлы (например, CSS) отправляются в браузер, но могут быть оптимизированы или объединены с другими файлами CSS для повышения производительности.
Хотя в этом руководстве описываются некоторые популярные соглашения, используемые в сообществе Astro, единственные зарезервированные директории Astro - это src/pages/
и src/content/
. Вы можете свободно переименовывать и реорганизовывать любые другие директории так, как вам удобно.
src/components
Заголовок раздела src/componentsКомпоненты - это многократно используемые блоки кода для ваших HTML-страниц. Это могут быть компоненты Astro, или компоненты UI-фреймворка (EN) такие как React или Vue. Обычно все компоненты вашего проекта группируются и упорядочиваются в этой папке.
Это общее соглашение в проектах Astro, но оно не является обязательным. Вы вольны организовывать свои компоненты так, как вам удобно!
src/content
Заголовок раздела src/contentДиректория src/content/
зарезервирована для хранения коллекций контента и файла конфигурации коллекций (по желанию). В этой папке не допускается наличие других файлов.
src/layouts
Заголовок раздела src/layoutsМакеты - это компоненты Astro, которые определяют структуру пользовательского интерфейса, разделяемую одной или несколькими страницами.
Как и src/components
, эта директория является общепринятой, но не обязательной.
src/pages
Заголовок раздела src/pagesСтраницы - это особый вид компонентов, используемых для создания новых страниц на вашем сайте. Страница может быть компонентом Astro или файлом Markdown, который представляет собой какую-то страницу контента для вашего сайта.
src/pages
это обязательная под-директория в вашем Astro проекте. Без неё ваш сайт не будет иметь страниц или маршрутов!
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 start
, npm run build
).
В файле package.json
есть два вида зависимостей: dependencies
и devDependencies
. В большинстве случаев они работают одинаково: Astro нуждается во всех зависимостях на этапе сборки, и ваш менеджер пакетов установит оба. Мы рекомендуем начать с помещения всех ваших зависимостей в dependencies
, и использовать devDependencies
только при наличии конкретной необходимости.
Для помощи в создании нового файла package.json
для вашего проекта, ознакомьтесь с инструкциями по ручной установке.
astro.config.mjs
Заголовок раздела astro.config.mjsЭтот файл создается в каждом шаблоне стартера и включает в себя параметры конфигурации для вашего проекта Astro. Здесь вы можете указать используемые интеграции, параметры сборки, параметры сервера и многое другое.
См. Руководство по настройке Astro (EN) для получения подробной информации о настройке конфигураций.
tsconfig.json
Заголовок раздела tsconfig.jsonЭтот файл создается в каждом стартовом шаблоне и включает параметры конфигурации TypeScript для вашего проекта Astro.
Некоторые функции (например, импорт пакетов npm) не полностью поддерживаются в редакторе без файла tsconfig.json
.
См. Руководство по TypeScript для получения подробной информации о настройке конфигураций.
Learn