An open API service indexing awesome lists of open source software.

https://github.com/yuriipohorilets/parcel-template

πŸ“¦ Parcel template v2.0
https://github.com/yuriipohorilets/parcel-template

parcel

Last synced: 3 months ago
JSON representation

πŸ“¦ Parcel template v2.0

Awesome Lists containing this project

README

          

**Read in other languages: [Русский](README.md), [Polski](README.pl.md).**

# Parcel template | v2.0

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» создан ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Parcel. Для знакомства ΠΈ настройки
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй [ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ](https://parceljs.org/).

## ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

1. УбСдись Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ установлСна LTS-вСрсия Node.js.
[Π‘ΠΊΠ°Ρ‡Π°ΠΉ ΠΈ установи](https://nodejs.org/en/) Π΅Ρ‘ Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.
2. Π‘ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉ этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
3. ИзмСни имя ΠΏΠ°ΠΏΠΊΠΈ с `parcel-project-template` Π½Π° имя своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
4. Π‘ΠΎΠ·Π΄Π°ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ пустой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° GitHub.
5. ΠžΡ‚ΠΊΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² VSCode, запусти Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ свяТи ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ
[ΠΏΠΎ инструкции](https://docs.github.com/en/get-started/getting-started-with-git/managing-remote-repositories#changing-a-remote-repositorys-url).
6. Установи зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ `npm install` .
7. Запусти Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ `npm start`.
8. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎ адрСсу [http://localhost:1234](http://localhost:1234).
Π­Ρ‚Π° страница Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ послС сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²
Ρ„Π°ΠΉΠ»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

## Π€Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ

- ВсС ΠΏΠ°Ρ€ΡˆΠ°Π»Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² стилСй Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅ `src/sass` ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²
Ρ„Π°ΠΉΠ»Ρ‹ стилСй страниц. НапримСр, для `index.html` Ρ„Π°ΠΉΠ» стилСй называСтся
`index.scss`.
- Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ добавляй Π² ΠΏΠ°ΠΏΠΊΡƒ `src/images`. Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ…, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ
ΠΏΡ€ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠ΅ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ВсС это происходит Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅
Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° слабых ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… это ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ
Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

## Π”Π΅ΠΏΠ»ΠΎΠΉ

Для настройки дСплоя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… шагов
ΠΏΠΎ настройкС Ρ‚Π²ΠΎΠ΅Π³ΠΎ рСпозитория. Π—Π°ΠΉΠ΄ΠΈ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ `Settings` ΠΈ Π² подсСкции
`Actions` Π²Ρ‹Π±Π΅Ρ€ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈ ΠΏΡƒΠ½ΠΊΡ‚ `General`.

![GitHub actions settings](./assets/actions-config-step-1.png)

ΠŸΡ€ΠΎΠ»ΠΈΡΡ‚Π°ΠΉ страницу Π΄ΠΎ послСднСй сСкции, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠ±Π΅Π΄ΠΈΡΡŒ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠ°ΠΊ
Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈ Π½Π°ΠΆΠΌΠΈ `Save`. Π‘Π΅Π· этих настроСк Ρƒ сборки Π±ΡƒΠ΄Π΅Ρ‚
нСдостаточно ΠΏΡ€Π°Π² для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ процСсса дСплоя.

![GitHub actions settings](./assets/actions-config-step-2.png)

ΠŸΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ вСрсия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒΡΡ Π½Π° GitHub
Pages, Π² Π²Π΅Ρ‚ΠΊΡƒ `gh-pages`, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΊΠΎΠ³Π΄Π° обновляСтся Π²Π΅Ρ‚ΠΊΠ° `main`. НапримСр,
послС прямого ΠΏΡƒΡˆΠ° ΠΈΠ»ΠΈ принятого ΠΏΡƒΠ»-рСквСста. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Ρ„Π°ΠΉΠ»Π΅
`package.json` ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ `homepage` ΠΈ скрипт `build`, Π·Π°ΠΌΠ΅Π½ΠΈΠ²
`your_username` ΠΈ `your_repo_name` Π½Π° свои, ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния Π½Π° GitHub.

```json
"homepage": "https://your_username.github.io/your_repo_name/",
"scripts": {
"build": "parcel build src/*.html --public-url /your_repo_name/"
},
```

Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡ‚ΠΈ Π² настройки GitHub-рСпозитория (`Settings` > `Pages`) ΠΈ
Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π°Ρ‡Ρƒ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ вСрсии Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ `/root` Π²Π΅Ρ‚ΠΊΠΈ `gh-pages`, Ссли
это Π½Π΅Π±Ρ‹Π»ΠΎ сдСлано автоматичСски.

![GitHub Pages settings](./assets/repo-settings.png)

### Бтатус дСплоя

Бтатус дСплоя ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° отобраТаСтся ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ Π²ΠΎΠ·Π»Π΅ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

- **Π–Π΅Π»Ρ‚Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚** - выполняСтся сборка ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
- **Π—Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚** - Π΄Π΅ΠΏΠ»ΠΎΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.
- **ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚** - Π²ΠΎ врСмя Π»ΠΈΠ½Ρ‚ΠΈΠ½Π³Π°, сборки ΠΈΠ»ΠΈ дСплоя ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка.

Π‘ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ статусС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ² ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅, ΠΈ Π²
Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ссылкС `Details`.

![Deployment status](./assets/status.png)

### Живая страница

Π§Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚, ΠΆΠΈΠ²ΡƒΡŽ страницу ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ
ΠΏΠΎ адрСсу ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ свойствС `homepage`. НапримСр, Π²ΠΎΡ‚
ссылка Π½Π° ΠΆΠΈΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ для этого рСпозитория
[https://goitacademy.github.io/parcel-project-template](https://goitacademy.github.io/parcel-project-template).

Если открываСтся пустая страница, ΡƒΠ±Π΅Π΄ΠΈΡΡŒ Ρ‡Ρ‚ΠΎ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ `Console` Π½Π΅Ρ‚ ошибок
связанных с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ путями ΠΊ CSS ΠΈ JS Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (**404**). Π‘ΠΊΠΎΡ€Π΅Π΅
всСго Ρƒ тСбя Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства `homepage` ΠΈΠ»ΠΈ скрипта `build` Π²
Ρ„Π°ΠΉΠ»Π΅ `package.json`.

## Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

![How it works](./assets/how-it-works.png)

1. ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡƒΡˆΠ° Π² Π²Π΅Ρ‚ΠΊΡƒ `main` GitHub-рСпозитория, запускаСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ
скрипт (GitHub Action) ΠΈΠ· Ρ„Π°ΠΉΠ»Π° `.github/workflows/deploy.yml`.
2. ВсС Ρ„Π°ΠΉΠ»Ρ‹ рСпозитория ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° сСрвСр, Π³Π΄Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ инициализируСтся ΠΈ
ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ сборку ΠΏΠ΅Ρ€Π΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ.
3. Если всС шаги ΠΏΡ€ΠΎΡˆΠ»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, собранная ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ вСрсия Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
отправляСтся Π² Π²Π΅Ρ‚ΠΊΡƒ `gh-pages`. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, Π² Π»ΠΎΠ³Π΅ выполнСния
скрипта Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.