Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

i18n(ru): create project-structure #10435

Merged
merged 6 commits into from
Jan 24, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 56 additions & 48 deletions src/content/docs/ru/basics/project-structure.mdx
Original file line number Diff line number Diff line change
@@ -1,129 +1,137 @@
---
title: Структура проекта
description: Узнайте, как организовать проект с помощью Astro.
description: Введение в основы файловой структуры Astro-проекта.
i18nReady: true
---
import { FileTree } from '@astrojs/starlight/components';

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

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

## Директории и Файлы

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

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

### Пример дерева проекта

Структура обычного Astro проекта может выглядеть так:
Структура простого Astro проекта может выглядеть так:

<FileTree>
- public/
- robots.txt
- favicon.svg
- social-image.png
- 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/
- post1.md
- post2.md
- post3.md
- index.astro
- [post].astro
- about.astro
- **index.astro**
- rss.xml.js
- styles/
- global.css
- content.config.ts
- astro.config.mjs
- package.json
- tsconfig.json
</FileTree>

### `src/`

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

- [Страницы](/ru/basics/astro-pages/)
- [Макеты](/ru/basics/layouts/)
- [Astro компоненты](/ru/basics/astro-components/)
- [Компоненты UI фреймворков (React и т. д.)](/ru/guides/framework-components/)
- [Компоненты UI-фреймворков (React и т.д.)](/ru/guides/framework-components/)
- [Стили (CSS, Sass)](/ru/guides/styling/)
- [Markdown](/ru/guides/markdown-content/)
- [Изображения, для оптимизации и обработки с помощью Astro](/ru/guides/images/)

Astro обрабатывает, оптимизирует и объединяет ваши файлы из src/, чтобы создать окончательный веб-сайт, который отправляется в браузер. В отличие от статической директории public/, ваши файлы из src/ собираются и обрабатываются Astro.
Astro обрабатывает, оптимизирует и объединяет в бандл ваши файлы из `src/`, чтобы создать окончательный сайт, который отправляется в браузер. В отличие от статической директории `public/`, файлы из `src/` собираются в билд и обрабатываются с помощью Astro.

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

:::tip
Хотя в этом руководстве описываются некоторые популярные соглашения, используемые в сообществе Astro, единственные зарезервированные директории Astro - это `src/pages/` и `src/content/`. Вы можете свободно переименовывать и реорганизовывать любые другие директории так, как вам удобно.
:::Tip
В этом руководстве описываются практики, которые общеприняты в сообществе Astro. Однако единственной зарезервированной директорией в Astro является `src/pages/`. Вы можете переименовывать любые другие директории и организовывать их так, как вам удобно.
:::

### `src/components`
### `src/pages`

**Компоненты** - это многократно используемые блоки кода для ваших HTML-страниц. Это могут быть [компоненты Astro](/ru/basics/astro-components/), или [компоненты UI-фреймворка](/ru/guides/framework-components/) такие как React или Vue. Обычно все компоненты вашего проекта группируются и упорядочиваются в этой папке.
Чтобы задать маршруты страниц для вашего сайта, добавьте [файлы поддерживаемых типов](/ru/basics/astro-pages/#поддерживаемые-типы-файлов-страниц) в эту директорию.

Это общее соглашение в проектах Astro, но оно не является обязательным. Вы вольны организовывать свои компоненты так, как вам удобно!
:::Caution
`src/pages` – это **обязательная** под-директория в вашем Astro-проекте. Без нее на вашем сайте не будет страниц и маршрутов!
:::

### `src/content`
### `src/components`

**Компоненты** - это повторяющиеся блоки кода для ваших HTML-страниц. Это могут быть [компоненты Astro](/ru/basics/astro-components/) или [компоненты UI-фреймворка](/ru/guides/framework-components/) такие как React или Vue. Обычно принято группировать и упорядочивать все компоненты вашего проекта в этой папке.

Директория `src/content/` зарезервирована для хранения [коллекций контента](/ru/guides/content-collections/) и файла конфигурации коллекций (по желанию). В этой папке не допускается наличие других файлов.
Это общепринятая практика для Astro-проектов, но она не является обязательной. Вы вольны организовывать компоненты своего проекта так, как вам удобно!

### `src/layouts`

[Макеты](/ru/basics/layouts/) - это компоненты Astro, которые определяют структуру пользовательского интерфейса, разделяемую одной или несколькими [страницами](/ru/basics/astro-pages/).
[Макеты](/ru/basics/layouts/) - это компоненты Astro, которые задают UI-структуру, используемую на одной или нескольких [страницах](/ru/basics/astro-pages/).

Как и `src/components`, эта директория является общепринятой, но не обязательной.

### `src/pages`

[Страницы](/ru/basics/astro-pages/) - это особый вид компонентов, используемых для создания новых страниц на вашем сайте. Страница может быть компонентом Astro или файлом Markdown, который представляет собой какую-то страницу контента для вашего сайта.

:::caution
`src/pages` это **обязательная** под-директория в вашем Astro проекте. Без неё ваш сайт не будет иметь страниц или маршрутов!
:::

### `src/styles`

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

### `public/`

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

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

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

:::tip
Как правило, любой CSS или JavaScript, который вы пишете самостоятельно, должен находиться в директории `src/`.
:::

### `package.json`

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

В файле `package.json` есть [два вида зависимостей](https://docs.npmjs.com/specifying-dependencies-and-devdependencies-in-a-package-json-file): `dependencies` и `devDependencies`. В большинстве случаев они работают одинаково: Astro нуждается во всех зависимостях на этапе сборки, и ваш менеджер пакетов установит оба. Мы рекомендуем начать с помещения всех ваших зависимостей в `dependencies`, и использовать `devDependencies` только при наличии конкретной необходимости.
Вы можете указать [два вида зависимостей](https://docs.npmjs.com/specifying-dependencies-and-devdependencies-in-a-package-json-file) в файле `package.json`: `dependencies` и `devDependencies`. В большинстве случаев они работают одинаково: Astro нуждается во всех зависимостях на этапе сборки, и ваш менеджер пакетов установит оба. Мы рекомендуем поместить все зависимости в `dependencies` для начала, и использовать `devDependencies` только при наличии конкретной необходимости.

Для помощи в создании нового файла `package.json` для вашего проекта, ознакомьтесь с инструкциями по [ручной установке](/ru/install-and-setup/#ручная-установка).
Чтобы создать новый файл `package.json` для вашего проекта, ознакомьтесь с инструкцией по [ручной установке](/ru/install-and-setup/#ручная-установка).

### `astro.config.mjs`

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

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

Загрузка файла конфигурации на TypeScript обрабатывается с помощью [`tsm`](https://github.com/lukeed/tsm) и будет учитывать настройку `tsconfig` вашего проекта.

См. [Руководство по настройке Astro](/ru/reference/configuration-reference/) для получения подробной информации о настройке конфигураций.
См. [Руководство по настройке Astro](/ru/reference/configuration-reference/) для детальной настройки.

### `tsconfig.json`

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

См. [Руководство по TypeScript](/ru/guides/typescript/) для получения подробной информации о настройке конфигураций.
См. [Руководство по TypeScript](/ru/guides/typescript/) для деталей по настройке конфигурации.
Loading