reona.dev

Astro ใงใƒ–ใƒญใ‚ฐใ‚’ไฝœใ‚Š็›ดใ—ใŸ


Next.js ใฎใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใ‚’ไฝฟใฃใฆไฝœใ‚‰ใ‚ŒใŸใƒ–ใƒญใ‚ฐใ‚’ Astro ใงไฝœใ‚Š็›ดใ—ใพใ—ใŸใ€‚

Astro ใ‚’้ธๆŠžใ—ใŸ็†็”ฑ

Astro ใฏ SSG ใจใ—ใฆๆฉŸ่ƒฝใ™ใ‚‹ Web ใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใงใ™ใ€‚ใƒ–ใƒญใ‚ฐใฎใ‚ˆใ†ใช้™็š„ใ‚ณใƒณใƒ†ใƒณใƒ„ใฎ้…ไฟกใ‚’็›ฎ็š„ใจใ™ใ‚‹ใ‚ฆใ‚งใƒ–ใ‚ตใ‚คใƒˆใฎๆง‹็ฏ‰ใซๅ‘ใ„ใฆใ„ใพใ™ใ€‚ ใƒฉใƒณใ‚ฟใ‚คใƒ ใง JavaScript ใ‚’็”Ÿๆˆใ—ใชใ„ใ“ใจใ‹ใ‚‰ใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นๆฐดๆบ–ใŒ้ซ˜ใใ€ไป–ใฎ SSG ใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใจๆฏ”่ผƒใ—ใฆใ‚‚้ซ˜้€Ÿใชใƒšใƒผใ‚ธใฎๆ็”ปใ‚’ๅฏ่ƒฝใจใ—ใพใ™ใ€‚

ๅฝ“ใƒ–ใƒญใ‚ฐใงใฏ่จ˜ไบ‹ใฎๅŸท็ญ†ใ‚„ใƒ–ใƒญใ‚ฐใฎๆง‹็ฏ‰ใ‚’้€šใ—ใฆใฎ็Ÿฅ่ญ˜ใฎใ‚ขใ‚ฆใƒˆใƒ—ใƒƒใƒˆใ‚’็›ฎ็š„ใจใ—ใฆใŠใ‚Šใ€Web ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎใ‚ˆใ†ใช่ค‡้›‘ใชๆŒ™ๅ‹•ใฏใใ‚Œใปใฉๅฟ…่ฆใจใ—ใชใ„ใ“ใจใ‹ใ‚‰ใ€Astro ใŒๆœ€้ฉใจ่€ƒใˆใพใ—ใŸใ€‚

ใพใŸใ€ไปฎใซ JavaScript ใ‚’ๅˆฉ็”จใ—ใฆ่ค‡้›‘ใชๆŒ™ๅ‹•ใ‚’ๅฎŸ็พใ—ใŸใ„ๅ ดๅˆใงใ‚‚ Components Island ใ‚’ๅˆฉ็”จใ™ใ‚‹ใ“ใจใงๆœ€ไฝŽ้™ใฎ JavaScript ใงใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใฎไฝŽไธ‹ใ‚’ๆœ€ๅฐ้™ใซใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚ React ใ‚„ Vue ็ญ‰ใฎใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใ‚’็ต„ใฟ่พผใ‚€ใ“ใจใŒใงใใ‚‹ใฎใ‚‚ใ€ๆง˜ใ€…ใชๆŠ€่ก“ใ‚’่ฉฆใ™ใ“ใจใŒใงใใ‚‹็‚นใง้ญ…ๅŠ›็š„ใซๆ„Ÿใ˜ใพใ—ใŸใ€‚

Astro ใซใฏไป–ใซใ‚‚ใ„ใใคใ‹ใฎๅˆฉ็‚นใŒใ‚ใ‚Šใพใ™ใ€‚่ฉณใ—ใใฏไธ‹่จ˜ใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใ‚’ใ”ๅ‚็…งใใ ใ•ใ„ใ€‚

Astro ใ‚’้ธใถ็†็”ฑ

ๆง‹็ฏ‰ๆ‰‹้ †

ๅ…จไฝ“ใฎๆตใ‚Œใจใ—ใฆใ€reona.dev ใฎใƒชใƒใ‚ธใƒˆใƒชๅ†…ๆ–ฐ่ฆใฎ Astro ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’็ซ‹ใกไธŠใ’ใฆใ€ไธ€ใคใฎ Pull request ใง็งป่กŒใ‚’้€ฒใ‚ใพใ—ใŸใ€‚

Getting Started ใซๆฒฟใฃใฆใ€CLI ใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚ๅŸท็ญ†ๆ™‚็‚นใงใฎ Astro ใฎๆœ€ๆ–ฐใƒใƒผใ‚ธใƒงใƒณใฏ v2.2.1 ใงใ™ใ€‚ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใƒžใƒใƒผใ‚ธใƒฃใƒผใฏ pnpm ใ‚’ๅˆฉ็”จใ—ใพใ™ใ€‚

  1. pnpm create astro ใ‚’ๅฎŸ่กŒ
โฏ pnpm create astro
pnpm create v1.22.19
[1/4] ๐Ÿ”  Resolving packages...
[2/4] ๐Ÿšš  Fetching packages...
warning prettier-plugin-astro@0.7.2: The engine "pnpm" appears to be invalid.
[3/4] ๐Ÿ”—  Linking dependencies...
[4/4] ๐Ÿ”จ  Building fresh packages...

success Installed "create-astro@3.1.2" with binaries:
      - create-astro

โ•ญโ”€โ”€โ”€โ”€โ”€โ•ฎ  Houston:
โ”‚ โ—  โ—ก โ—   Let's build something fast!
โ•ฐโ”€โ”€โ”€โ”€โ”€โ•ฏ

 astro   v2.2.1 Launch sequence initiated.
  1. ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆๅใ‚’ๅ…ฅๅŠ›ใ™ใ‚‹
   dir   Where should we create your new project?
         ./dev
  1. ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใ‚’้ธๆŠžใ™ใ‚‹

ไปŠๅ›žใฎ็”จ้€”ใซๆฒฟใ†ใ‚ˆใ†ใƒ–ใƒญใ‚ฐใฎใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใ‚’้ธๆŠžใ—ใพใ™ใ€‚

  tmpl   How would you like to start your new project?
         โ—‹ Include sample files
         โ— Use blog template
         โ—‹ Empty

ไปฅไธ‹ใฎใƒชใƒใ‚ธใƒˆใƒชใŒใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใจใ—ใฆๆŽก็”จใ•ใ‚Œใฆใ„ใพใ™ใ€‚

Charca / astro-blog-template

  1. ไพๅญ˜ใƒฉใ‚คใƒ–ใƒฉใƒชใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซๆœ‰็„กใ‚’้ธๆŠžใ™ใ‚‹
  deps   Install dependencies? (recommended)
         โ— Yes  โ—‹ No
  1. TypeScript ใฎๅˆฉ็”จๆœ‰็„กใ‚’้ธๆŠžใ™ใ‚‹
    ts   Do you plan to write TypeScript?
         Yes

   use   How strict should TypeScript be?
         โ— Strict (recommended)
         โ—‹ Strictest
         โ—‹ Relaxed

ๆŽจๅฅจใ•ใ‚Œใฆใ„ใ‚‹ใจใŠใ‚Šใซ strict ใƒขใƒผใƒ‰ใ‚’้ธๆŠžใ—ใพใ™ใ€‚

  1. Git ใƒชใƒใ‚ธใƒˆใƒชใ‚’ไฝœๆˆๆœ‰็„กใ‚’้ธๆŠžใ™ใ‚‹
   git   Initialize a new git repository? (optional)
         โ—‹ Yes  โ— No

ใ“ใ‚Œใงๆ–ฐ่ฆใฎ Astro ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใŒไฝœๆˆใ•ใ‚Œใพใ—ใŸใ€‚ pnpm dev ใ‚ณใƒžใƒณใƒ‰ใงใ‚ตใƒผใƒใƒผใ‚’็ซ‹ใกไธŠใ’ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

ไปŠๅพŒใ‚„ใ‚ŠใŸใ„ใ“ใจ

ๆ—ขใซ TailwindCSS ใธใฎๅค‰ๆ›ดใ‚„ใƒ€ใƒผใ‚ฏใƒขใƒผใƒ‰ๅฏพๅฟœใ€ไธ‹ๆ›ธใๆฉŸ่ƒฝใฎ่ฟฝๅŠ ใ‚„ markuplint ใฎ่ฟฝๅŠ ็ญ‰ใฏๅฎŸๆ–ฝใ—ใพใ—ใŸใŒใ€ไป–ใซใ‚‚ issue ใซ่ตท็ฅจใ—ใฆๆฉŸ่ƒฝ่ฟฝๅŠ ใ‚’ๅฎŸๆ–ฝใ—ใฆใ„ใไบˆๅฎšใงใ™ใ€‚