๋ด ์ต๊ทผ ํธ์์์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ค๋ ๊ฒ์ ๋ฐฉ๊ธ ์์ ์ฐจ ๋ ธ์ต๋๋ค. ๊ทธ๋๊น์ง๋ ์ ์๋ํ์ต๋๋ค.
Netlify ๊ณ์ ์ด GitLab์ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ ๊ฑฐ๊ธฐ์์ ๋น๋ ๋ฐ ๋ฐฐํฌ๋ฉ๋๋ค.
# 5734์์ ์ ์ํ ์กฐ์น๋ฅผ ๋ฐ๋์ง๋ง ์๋ํ์ง ์์์ต๋๋ค. ๊ฑฐ๊ธฐ์ ์ธ๊ธ ๋ ์คํ๋ผ์ธ ํ๋ฌ๊ทธ์ธ๋ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํนํ ์ต๊ทผ์ BrowserslistError : Unknown browser query dead
. ๋ด ๊ธ๋ก๋ฒ ๊ฐ์ธ ๋น ํจํค์ง๋ฅผ 2.X์์ 1.9.X๋ก ๋ค์ด ๊ทธ๋ ์ด๋ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ง๋ง ๊ฒฐ๊ณผ์ ์ผ๋ก์ด CSS ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ์ ์์ต๋๊น?
... ์ด๋ฌํ ๋ฌธ์ ์ค ํ๋๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์์ต๋๊น?
๋ฆฌํฌ์งํ ๋ฆฌ๋ https://gitlab.com/sharemeals/gatsby-site์์ ๊ณต๊ฐ๋ฉ๋๋ค.
์ ๋ฐ์ดํธ ๋ด package.json์ gatsby-plugin-offline ํจํค์ง๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฑฐ๊ธฐ์ node_modules์์ ์ ๊ฑฐํด๋ ์ฐจ์ด๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ค์ ๋ก ๊ตฌํํ์ง ์๊ณ ์ค์นํ์ ์๋ ์์ต๋๋ค.
@ jonathan-chin gatsby info --clipboard
๋ฅผ ์คํํ์ฌ ๊ด๋ จ ํ๊ฒฝ ์ ๋ณด๋ฅผ ์ ๊ณตํด ์ฃผ์๊ฒ ์ต๋๊น?
๋ํ ๊ณต์ ํ ์ ์ฅ์์ package.json ์์ Gatsby v1์ ์ฌ์ฉํ๊ณ ์์์ ํ์ธํ์ต๋๋ค. Gatsby v1์ gatsby-cli
๋ฒ์ 1.x.x
์ ์ฌ์ฉํ์ธ์. gatsby-cli
๋ฒ์ 2.x.x
์ Gatsby v2 ์ฉ์
๋๋ค.
์๋ ํ์ธ์.
System:
OS: macOS High Sierra 10.13.6
CPU: x64 Intel(R) Core(TM) i5-6360U CPU @ 2.00GHz
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 9.4.0 - /usr/local/bin/node
Yarn: 1.3.2 - /usr/local/bin/yarn
npm: 6.4.1 - /usr/local/bin/npm
Browsers:
Chrome: 69.0.3497.100
Safari: 12.0
npmPackages:
gatsby: ^1.9.277 => 1.9.278
gatsby-image: ^1.0.24 => 1.0.55
gatsby-link: ^1.6.28 => 1.6.46
gatsby-plugin-canonical-urls: ^1.0.11 => 1.0.18
gatsby-plugin-google-analytics: ^1.0.12 => 1.0.31
gatsby-plugin-google-fonts: 0.0.3 => 0.0.3
gatsby-plugin-material-ui: ^0.1.3 => 0.1.3
gatsby-plugin-nprogress: ^1.0.10 => 1.0.14
gatsby-plugin-react-helmet: ^1.0.5 => 1.0.8
gatsby-plugin-react-next: ^1.0.11 => 1.0.11
gatsby-plugin-sass: ^1.0.26 => 1.0.26
gatsby-plugin-sharp: ^1.6.48 => 1.6.48
gatsby-remark-autolink-headers: ^1.4.8 => 1.4.19
gatsby-remark-copy-linked-files: ^1.5.36 => 1.5.37
gatsby-remark-external-links: ^0.0.4 => 0.0.4
gatsby-remark-images: ^1.5.67 => 1.5.67
gatsby-remark-responsive-iframe: ^1.4.19 => 1.4.20
gatsby-source-filesystem: ^1.5.8 => 1.5.39
gatsby-transformer-remark: ^1.7.21 => 1.7.44
gatsby-transformer-sharp: ^1.6.14 => 1.6.27
npmGlobalPackages:
gatsby-cli: 2.0.0-rc.1
gatsby: 1.9.278
๊ธ๋ก๋ฒ gatsby-cli๋ฅผ 1.9.X๋ก ๋ค์ด ๊ทธ๋ ์ด๋ํ๋ฉด CSS ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. 2.0.0-rc.1๋ก ์ ์งํ๋ฉด BrowserslistError: Unknown browser query dead
์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
@ jonathan-chin gatsby-cli
๋ฒ์ 1.9.x
์์ CSS ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ฌ์ฉ์ค์ธ Gatsby ๋ฒ์ ๊ณผ ํธํ๋๋ฏ๋ก ์ฌ์ฉํด์ผํ๋ ๋ฒ์ ์
๋๋ค.
๋ณต์ ์ ์ฅ์๋ฅผ ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ ๊ฐ ์ดํด ๋ณผ๊ฒ์.
@ jonathan-chin์ด ๊ฐ๋ฐ๊ณผ ๋น๋์์ ์ ํํ ์ด๋ค CSS๊ฐ ๋ค๋ฅธ์ง ์ ์ ์์ต๋๊น?
์๋
ํ์ธ์.
์ด๊ฒ์ ๊ฐ๋ฐ์์ ๊ฐ์ ธ์จ ๊ฒ์ด๋ฉฐ ์์๋๋ ์คํ์ผ์
๋๋ค.
์ด๊ฒ์ด ๋ด๊ฐ ๋น๋์์ ์ป์ ๊ฒ์
๋๋ค.
CSS ํด๋์ค๊ฐ ๋ค๋ฅด๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์ด์ ์ ๋ฌธ์ ์๋ ๊ฒ์ ๊ธฐ์ตํ์ง ์์ต๋๋ค. CSS๊ฐ ์ํฅ์๋ฐ์ง ์์ ๋ง์ง๋ง ์ข์ ๋น๋๋ https://gitlab.com/sharemeals/gatsby-site/commit/4342a715d6a1cdcb2808e5450819753be6f56a19
์ด๊ฒ์ ๋ํ ์์ ์ # 8092๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@ jonathan-chin ์์ ์ฌํญ์ ๋ด์ฉ์ ๊ฐ์ ธ ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ํด ๋ณผ ์ ์์ต๋๊น? ์ฐธ๊ณ : ์์ง ๋ณด์ง ๋ชปํ๋ค๋ฉด Gatsby ๋ฌธ์์ How to Contribute ์น์ ์ gatsby-dev-cli๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.์ด๋ฅผ ํ ์คํธํด์ผํฉ๋๋ค!
๋ํ @ jonathan-chin์ Gatsby v1์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ์์ ์ฌํญ์ ์ป์ผ๋ ค๋ฉด Gatsby v2๋ก ์ ๊ทธ๋ ์ด๋ ํ ์ ์์ต๋๊น?
@DSchau ์ด๊ฒ์ผ๋ก ๋์ ์ค๋ ๋ฐ ๋๋ฌด ์ค๋
๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ v2๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฒ์ ๋๋ฌด ๋ง์ ์์ ์ด์์ต๋๋ค. ์ v2 ์คํํฐ๋ฅผ ์์ํ๊ณ ํ๋์ฉ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค (ํ์์ ๋ฐ๋ผ ๋ณต์ฌ ๋ฐ ์์ ). ์ด ๊ฒฝ์ฐ gatsby develop์ gatsby ๋น๋์ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค.
๊ฐ์ธ ๋น ๋น๋
๊ฐ์ธ ๋น ๊ฐ๋ฐ
๋น๋ ๋ฐ ๊ฐ๋ฐ์ ๋์ผํ ๋ ์์์ CSS ์คํ์ผ ๋น๊ต :
์ง๋ค:
.jss94 {
color: #fff;
font-size: 0.875rem;
font-weight: 500;
font-family: "Roboto", "Helvetica", "Arial", sans-serif;
text-transform: uppercase;
}
๋ํ๋๊ฒ ํ๋ค:
.MuiTypography-headline-88 {
color: #fff;
font-size: 1.5rem;
font-weight: 400;
font-family: "Roboto", "Helvetica", "Arial", sans-serif;
line-height: 1.35417em;
}
v2์ ๋ ์ด์์ ๊ตฌ์ฑ ์์์๋ก๋ํ๋ scss๋ฅผ ์ฌ์ ์ํ๋ ๋จธํฐ๋ฆฌ์ผ UI๊ฐ ์์ต๋๋ค. ๊ฐ๋ฐ ์ค์๋ ์ ๋ณํฉํ๋ ๊ฒ ๊ฐ์ง๋ง ๋น๋์์๋ ๋ฌด์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๊ฒ ์์ธ ์ผ ์ ์์ต๋๊น?
import '../scss/style.scss';
@ jonathan-chin v2์์ ๋๋ ์์ @DSchau ์ ์๊ฒฌ ์ ์ธ๊ธ ๋ ๋จ๊ณ์ ๋ฐ๋ผ ์ด๊ฒ์ ์๋ ํ์ต๋๊น?
@kakadiadarpan ์ฃ์กํฉ๋๋ค. ์์ ํ๋ฆ์ ์ค์ ํ ์์๋ ๋ฅ๋ ฅ (์ : ์๊ฐ)์ด ์์ต๋๋ค.
PR ์์ ์ฌํญ์ ์ดํด๋ณธ ๊ฒฐ๊ณผ ์ ๊ฐ ๊ฒช๊ณ ์๋ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๊ธ์์ด ๋ฌธ์ ๋ฅผ ๋ซ๊ณ PR์ ๋ชจ๋ํฐ๋ง ํ ์ ์์ต๋๋ค.
@kakadiadarpan ์ฃ์กํฉ๋๋ค, ๋ฐฉ๊ธ ์ด์ํ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
๋ด ์ฌ์ดํธ๊ฐ ์ฒ์๋ก๋ ๋ ๋ CSS๊ฐ ์ด์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ธ๋ฑ์ค ํ์ด์ง๋ฅผ ๋ค์๋ก๋ํ๋๋ก ๊ฐ์ ํ๋ฉด CSS๊ฐ ์ ๋๋ก๋ก๋๋ฉ๋๋ค. ์ฌํํ๋ ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1) https://sharemeals.org/ ๋ก๋
์๋์์๋ ์๋จธ์จ ์ธ์ฉ๋ฌธ์ ์ดํด๋ณด์ญ์์ค.
2) ์ผ์ชฝ ์๋จ ์ฌ์ดํธ ์ด๋ฆ์ ํด๋ฆญํ์ญ์์ค. ์ฌ์ดํธ๋ฅผ ์๋ก ๊ณ ์น์ง ์๊ณ ์ธ๋ฑ์ค ํ์ด์ง๋ฅผ ๋ค์๋ก๋ํฉ๋๋ค. ์๋จธ์จ ๊ฒฌ์ ์ด ์์๋๋ก ๋ํ๋ฉ๋๋ค.
(์๋จธ์จ ์ธ์ฉ๋ฌธ์ ๋ค๋ฅธ CSS ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ๋ ๋๋ค. ๊ฐ์ฅ ๋์ ์ ๋๊ธฐ ๋๋ฌธ์์ด ๋ถ๋ถ ๋ง ํ์ํฉ๋๋ค)
@ jonathan-chin ์
๋ฐ์ดํธ ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ ๊ณตํ์ ๋จ๊ณ๋ก ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค. https://sharemeals.org/์ Gatsby v1
๋๋ v2
๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
~์ด ๋๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ~
~ injectGlobal
์ฌ์ฉํ ๋ gatsby build
์คํ ํ ํ ๋ค๋ฅธ ์คํ์ผ์ด ๋ํ๋ฉ๋๋ค. ์ฌ๊ธฐ์์ ๋ฌธ์ ๋ฅผ ๋ณผ ์ ์์ต๋๋ค : https://ivorpad.com/about~
~ ํ์ด์ง ๋ก๋ฉ์ด ์๋ฃ๋ ํ '์ฐ๊ธฐ'๋๋ '์์ '๋งํฌ๋ฅผ ๊ฐ๋ฆฌํค๋ฉด ์คํ์ผ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ~
์ ๋ชฉ ์คํ์ผ์ ์ ์ญ ๋์ page.js
๋ก ์ด๋ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
System:
OS: macOS High Sierra 10.13.5
CPU: x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
Shell: 5.3 - /bin/zsh
Binaries:
Node: 8.11.4 - ~/n/bin/node
Yarn: 1.2.1 - /usr/local/bin/yarn
npm: 6.4.1 - ~/n/bin/npm
Browsers:
Chrome: 69.0.3497.100
Firefox: 62.0.2
Safari: 11.1.1
npmPackages:
gatsby: ^2.0.7 => 2.0.8
gatsby-plugin-google-analytics: ^2.0.0-rc.2 => 2.0.0-rc.2
gatsby-plugin-google-fonts: ^0.0.4 => 0.0.4
gatsby-plugin-react-helmet: ^3.0.0-rc.1 => 3.0.0
gatsby-plugin-styled-components: ^3.0.0 => 3.0.0
gatsby-plugin-typography: ^2.2.0 => 2.2.0
gatsby-remark-prismjs: ^3.0.1 => 3.0.1
gatsby-source-contentful: ^2.0.1-beta.15 => 2.0.1
gatsby-transformer-remark: ^1.7.44 => 1.7.44
"gatsby": "^1.9.277"
์ฌ์ฉํ๋ @kakadiadarpan
์ด๊ฒ์ ๋ํ ์์ ์ # 8092๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@ jonathan-chin ์์ ์ฌํญ์ ๋ด์ฉ์ ๊ฐ์ ธ ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ํด ๋ณผ ์ ์์ต๋๊น? ์ฐธ๊ณ : ์์ง ๋ณด์ง ๋ชปํ๋ค๋ฉด Gatsby ๋ฌธ์์ How to Contribute ์น์ ์ gatsby-dev-cli๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.์ด๋ฅผ ํ ์คํธํด์ผํฉ๋๋ค!
@ jonathan-chin์ด ๋๊ธ์์ @DSchau ๊ฐ ์ ๊ณต ํ ์ ์์ ์๋ํด ๋ณผ ์ ์์ต๋๊น?
@kakadiadarpan ๋ฐฉ๊ธ ์ด๊ฒ์ ๊ตฌํํ๋ ค๊ณ ์๋ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ gatsby-cli-dev๋ฅผ ์ค์นํ๊ณ , ๋ถ๊ธฐํ๊ณ ๋น๊ธฐ๊ณ , ๋ถ๊ธฐ๋ฅผ ์ ํํ์ต๋๋ค.
๋ฌธ์ ๋ ์ฌ์ ํ ์ง์๋ฉ๋๋ค.
๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ node_modules / gatsby๊ฐ ์ ํํ๊ณ ์ด์ ๊ฒ์ด ์๋์ง ์ด๋ป๊ฒ ๋ค์ ํ์ธํ ์ ์์ต๋๊น?
Gatsby 1.XX๋ฅผ ์ฌ์ฉํ๊ณ ์ ์ ๋ ์์ ์ฌํญ์์ด ๋ ๋ง์ ์กฐ์ฌ๋ฅผ ์ํํ์ต๋๋ค.
(๋๋ Gatsby 2.XX๋ก ์ ๊ทธ๋ ์ด๋๋ฅผ ์๋ํ๊ณ ๋ณ๋๋ก ์ ์ ๋ ์์ ์ฌํญ์ ์๋ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค)
์ํ๋ ์คํ์ผ์ ๋ํ jss ํด๋์ค๊ฐ ์ด๊ธฐ ํ์ด์ง๋ก๋์ ์กด์ฌํฉ๋๋ค. ์ด ๊ฒฝ์ฐ .jss58์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ๋ณด๊ณ ์๋ ์์๋ ์ด๊ธฐ๋ก๋์์ .jss58์ ์ป์ง ๋ชปํฉ๋๋ค. ๋ค๋ฅธ ํ์ด์ง ์์ฒญ์ ํ ํ์ ๋ง โโ(๋์ผํ ํ์ด์ง๋ฅผ ์์ฒญํ๋๋ผ๋) ์์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ .jss58์ ๊ฐ์ ธ์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ์ฉ ํ jss ํด๋์ค๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น? ์ด๊ธฐ๋ก๋์๋ ํ๋์ ๊ฒฐ๊ณผ๊ฐ ์์ง๋ง ๋ชจ๋ ํ์ ํ์ด์ง ์์ฒญ์๋ ๋ค๋ฅธ๋ก๋๊ฐ ๋ฐ์ํ๋ ์ด์ ๊ฐ ์์ต๋๊น?
ํธ์ง : ๋ค๋ฅธ ์ฃผ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ํ๋ก๋์
๋น๋์์ ๋ด svg ์์ด์ฝ์ ํ์ด์ง ์์ฒญ์ ๊ด๊ณ์์ด ์์ ํ๋ก๋๋์ง ์์ต๋๋ค.
์ด๊ฒ์ด ๋ด๊ฐ ๊ฐ๋ฐํ๋ ๋์ ์ป๋ ๊ฒ์
๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค. Gatsby ๊ฐ๋ฐ ๋ฐ Gatsby ๋น๋ ๋ฒ์ ์ ์ ์๊ฒ ๋งค์ฐ ๋ค๋ฆ ๋๋ค.
์ง์ ๋ฐฉ๋ฌธํ๊ฑฐ๋ material-ui ๊ตฌ์ฑ ์์๋ก ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น๋ฉด ํด๋น ๊ตฌ์ฑ ์์์ ๋ํ CSS๊ฐ ์์๋ฉ๋๋ค. ํด๋์ค๋ ์์ค์ ์์ง๋ง ์์์ ์ ์ฉ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ ํ์ด์ง๋ก <Link>
๋ฅผ ๋ฐ๋ผ ๊ฐ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค.
๋๋ ๋ํ ์คํํ๋ฉด ๋ํ๋ฌ์ต๋๋ค gatsby build
๋์ gatsby develop
์คํ๋๋ฉด, ๊ฐ๋ฐ ๊ฐ์ธ ๋น ๋ฒ์ ์ ๋ํ ๊ฐ์ธ ๋น ๋น๋ ๋ฒ์ ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ํ๋ํ๊ธฐ ์์ํฉ๋๋ค.
System:
OS: Linux 3.10 Red Hat Enterprise Linux Workstation 7.3 (Maipo)
CPU: x64 Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
Shell: 4.2.46 - /bin/bash
Binaries:
Node: 11.1.0 - /usr/bin/node
Yarn: 1.12.1 - /usr/bin/yarn
npm: 6.4.1 - /usr/bin/npm
Browsers:
Chrome: 70.0.3538.77
npmPackages:
gatsby: 2.0.37 => 2.0.37
gatsby-cli: 2.4.4 => 2.4.4
gatsby-plugin-typography: 2.2.1 => 2.2.1
gatsby-source-atom: 0.1.0 => 0.1.0
gatsby-source-ghost: 2.1.2 => 2.1.2
npmGlobalPackages:
gatsby-cli: 2.4.4
(์ ๋ gatsby-plugin-offline์ ์ฌ์ฉํ ์ ์ด ์์ต๋๋ค)
http://pawanhegde.netlify.com ์์ ์น ์ฌ์ดํธ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค
์์ค๋ https://gitlab.com/PawanH/pawanh.gitlab.io/tree/gatsbyjs์ ์์ต๋๋ค.
"์์"๋ฒ์ ์ ๋ณด๋ ค๋ฉด ํ๋จ ๊ทผ์ฒ์์๋ ์ฝ๋ฏนํ๊ฒ ํฐ ์์ด์ฝ์ ํด๋ฆญํ์ญ์์ค.
์์ง # 8092์ ๋ํ ์์ ์ ์๋ ํ ์๊ฐ์ด ์์์ต๋๋ค.
์์ง # 8092์ ๋ํ ์์ ์ ์๋ ํ ์๊ฐ์ด ์์์ต๋๋ค.
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ์ต๋๋ค. ๋๋ ์ฌ์ ํ ๊ฐ์ ํ๋์ ๋ณธ๋ค.
์ง์ ๋ฐฉ๋ฌธํ๊ฑฐ๋ ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น๋ฉด CSS๊ฐ ํด๋น ๊ตฌ์ฑ ์์์ ๋ํด ์์๋ฉ๋๋ค. ํด๋์ค๋ ์์ค์ ์์ง๋ง ์์์ ์ ์ฉ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ ํ์ด์ง๋ก
<Link>
๋ฅผ ๋ฐ๋ผ ๊ฐ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ๋์๊ฒ ์ค๋ช ๋๋๋ก ์ ํํ ๋ฐ์ํฉ๋๋ค. https://github.com/gatsbyjs/gatsby/pull/8092 ์์ ์์ ์ ์๋ํ์ผ๋ฉฐ ๋๋ถ๋ถ์ ํ์ด์ง์์ ์๋ํ์ง๋ง ๋ชจ๋ ํ์ด์ง์์ ์๋ํ์ง๋ ์์์ต๋๋ค.
์์ :
์ค์ :
System:
OS: macOS High Sierra 10.13.5
CPU: x64 Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz
Shell: 5.3 - /bin/zsh
Binaries:
Node: 10.10.0 - /usr/local/bin/node
Yarn: 1.9.4 - /usr/local/bin/yarn
npm: 6.4.1 - /usr/local/bin/npm
Browsers:
Chrome: 70.0.3538.102
Firefox: 62.0.3
Safari: 11.1.1
npmPackages:
gatsby: ^2.0.46 => 2.0.46
gatsby-image: ^2.0.20 => 2.0.20
gatsby-link: ^2.0.6 => 2.0.6
gatsby-plugin-catch-links: ^2.0.8 => 2.0.8
gatsby-plugin-flow: 1.0.2 => 1.0.2
gatsby-plugin-google-analytics: ^2.0.7 => 2.0.7
gatsby-plugin-manifest: ^2.0.9 => 2.0.9
gatsby-plugin-react-helmet: ^3.0.1 => 3.0.1
gatsby-plugin-root-import: 2.0.4 => 2.0.4
gatsby-plugin-sass: ^2.0.4 => 2.0.4
gatsby-plugin-sharp: 2.0.12 => 2.0.12
gatsby-plugin-sitemap: ^2.0.2 => 2.0.2
gatsby-plugin-svgr: 2.0.0-alpha => 2.0.0-alpha
gatsby-remark-copy-linked-files: 2.0.6 => 2.0.6
gatsby-remark-images: 2.0.6 => 2.0.6
gatsby-remark-responsive-iframe: ^2.0.6 => 2.0.6
gatsby-remark-smartypants: 2.0.6 => 2.0.6
gatsby-source-filesystem: 2.0.8 => 2.0.8
gatsby-source-wordpress: 3.0.13 => 3.0.13
gatsby-transformer-remark: 2.1.12 => 2.1.12
gatsby-transformer-sharp: ^2.1.8 => 2.1.8
๋ค์์ ์ํํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
๋ด๊ฐ ๊ฐ์ง index.js ํ์ผ์์
import 'injectSheet' from react-jss
import './../bootstrap.min.css'
์์๋ฅผ ๋ฐ๋๋กํ์ฌ html์์ CSS๋ฅผ ๊ฐ์ ธ์ฌ ์์๋ฅผ ์ง์ ํ ์์์์ต๋๋ค.
๊ทธ๋์ ๋ด ๋ง์ง๋ง ์ฝ๋๋
import './../bootstrap.min.css'
import 'injectSheet' from react-jss
์๋ฃจ์
: ์์
์์ ๋ณ๊ฒฝ
์ด๊ฒ์ ๋๋ฅผ ์ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ๋ฐ๋ผ๊ฑด๋ ๊ทธ๊ฒ์ ๋น์ ์๊ฒ ๋๊ฐ์ ์ผ์ํฉ๋๋ค.
๋๋ ๋ค๋ฅธ ๋ง์ ๊ฒ๋ค ์ค์์๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
develop
๋ ๋น ๊ฒฐ์ ์ ์ผ๋ก ์คํ๋์ง๋ง ์คํ๋๋ฉด ์ ๋๋ก ์๋ํฉ๋๋ค.StaticQuery
๋น ๊ฒฐ์ ์ ์ผ๋ก ์ด๋ฏธ์ง๋ก๋๋ฅผ ์๋ฃํ์ง ๋ชปํ์ต๋๋ค.build
๋ ๋น ๊ฒฐ์ ์ ์ผ๋ก ์คํจํ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฏธ์ง์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.build
์ถ๋ ฅ ๋ค๋ฅด๋ค ํฌ๊ฒ์๋ develop
-์ด ๊ฑฐ๋ ์ฐจ๋จ๊ธฐ์ด๋ค.develop
์ build
๊ฐ ์๋ก ์ํธ ์์ฉํ๋ ๊ฒ ๊ฐ์ต๋๋ค.์ด๋ฌํ ๋ฌธ์ ๋ ์ํ๊น๊ฒ๋ Gatsby์ ์ด์ ์ ๋ฅ๊ฐํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ Create React App์ผ๋ก ๋ค์ ์ ํํด์ผํฉ๋๋ค.
๋ชจ๋ ์ธ๋ผ์ธ ์คํ์ผ์ ์ ๊ฑฐํ๊ณ ๋ฃจํธ ์์ค์ด ์๋ ์์ ๊ตฌ์ฑ ์์์์ .scss๋ฅผ ๊ฐ์ ธ ์ค๋ ๊ฒ๊ณผ ๊ฐ์ ๋ค์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ํ์ต๋๋ค.
์ฌ์ ํ ๋ฌธ์ ๊ฐ ์ง์๋ฉ๋๋ค. ์ด๊ฒ์ ์ ๋ง ๊ณจ์นซ๊ฑฐ๋ฆฌ์
๋๋ค
์คํ์ผ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ gatsby-config.js
gatsby-plugin-styled-components
๋ฅผ ์ถ๊ฐํ๋ฉด ํจ๊ณผ๊ฐ์์์ต๋๋ค.
๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
Gatsby ๋น๋๋ ๋ค๋ฅธ ํด๋์ค ์ด๋ฆ์ ์ ์ฉํ์ง๋ง React inspector์์ ์ ์ ํ ํด๋์ค๊ฐ ์ ์ฉ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
System:
OS: macOS High Sierra 10.13.6
CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.14.2 - ~/.nvm/versions/node/v10.14.2/bin/node
Yarn: 1.12.3 - /usr/local/bin/yarn
npm: 6.4.1 - ~/.nvm/versions/node/v10.14.2/bin/npm
Browsers:
Chrome: 71.0.3578.98
Firefox: 59.0.1
Safari: 12.0.3
npmPackages:
gatsby: ^2.0.107 => 2.0.107
gatsby-image: ^2.0.20 => 2.0.25
gatsby-plugin-google-analytics: ^2.0.9 => 2.0.9
gatsby-plugin-manifest: ^2.0.9 => 2.0.12
gatsby-plugin-offline: ^2.0.16 => 2.0.19
gatsby-plugin-react-helmet: ^3.0.2 => 3.0.4
gatsby-plugin-react-svg: ^2.0.0-beta1 => 2.0.0-beta1
gatsby-plugin-sass: ^2.0.7 => 2.0.7
gatsby-plugin-sharp: ^2.0.16 => 2.0.16
gatsby-remark-copy-linked-files: ^2.0.8 => 2.0.8
gatsby-remark-external-links: ^0.0.4 => 0.0.4
gatsby-remark-images: ^3.0.1 => 3.0.1
gatsby-source-filesystem: ^2.0.12 => 2.0.12
gatsby-transformer-remark: ^2.1.15 => 2.1.15
gatsby-transformer-sharp: ^2.1.9 => 2.1.9
npmGlobalPackages:
gatsby-cli: 2.4.6
ํ์ผ!
์ด ๋ฌธ์ ๋ ์กฐ์ฉํด์ก์ต๋๋ค. ๋ฌด์ ๋ฌด์ํ ์กฐ์ฉํจ. ๐ป
๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก ํ์ฌ 30 ์ผ ๋์ ํ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ง์ง๋ง์ผ๋ก ์ ๋ฐ์ดํธ ํ ์ง 20 ์ผ์ด ์ง๋ฌ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋์ณค๊ฑฐ๋ ๊ณ์ ์ด๋ ค๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ์์ ๋ต์ฅ ํด์ฃผ์ธ์. ์ด ๋ฌธ์ ๋ฅผ ๊ณ์ ์ด์ด๋๊ธฐ ์ํด "๋ถ์คํ์ง ์์"์ด๋ผ๋ ๋ ์ด๋ธ์ ์ถ๊ฐ ํ ์๋ ์์ต๋๋ค.
Gatsby ์ปค๋ฎค๋ํฐ์ ์ผ์์ด๋์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐ช๐
์ด์ด์ฃผ์ธ์.
์ฌ์ ํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ์ ์๋ง ์ด์ด์ฃผ์ธ์
System:
OS: macOS 10.14.3
CPU: (4) x64 Intel(R) Core(TM) i5-7287U CPU @ 3.30GHz
Shell: 5.3 - /bin/zsh
Binaries:
Node: 11.10.0 - /usr/local/bin/node
Yarn: 1.13.0 - /usr/local/bin/yarn
npm: 6.7.0 - /usr/local/bin/npm
Browsers:
Chrome: 72.0.3626.119
Firefox: 65.0.1
Safari: 12.0.3
npmPackages:
gatsby: ^2.0.35 => 2.1.4
gatsby-cli: ^2.4.10 => 2.4.10
gatsby-image: ^2.0.19 => 2.0.29
gatsby-plugin-emotion: ^4.0.3 => 4.0.3
gatsby-plugin-google-analytics: ^2.0.8 => 2.0.14
gatsby-plugin-manifest: ^2.0.7 => 2.0.17
gatsby-plugin-netlify: ^2.0.3 => 2.0.11
gatsby-plugin-netlify-cms: ^3.0.12 => 3.0.12
gatsby-plugin-offline: ^2.0.10 => 2.0.23
gatsby-plugin-purgecss: ^3.1.0 => 3.1.0
gatsby-plugin-react-helmet: ^3.0.1 => 3.0.6
gatsby-plugin-sass: ^2.0.7 => 2.0.10
gatsby-plugin-sharp: ^2.0.10 => 2.0.20
gatsby-plugin-typography: ^2.2.2 => 2.2.7
gatsby-remark-copy-linked-files: ^2.0.7 => 2.0.9
gatsby-remark-images: ^3.0.1 => 3.0.4
gatsby-remark-relative-images: ^0.2.1 => 0.2.1
gatsby-source-filesystem: ^2.0.12 => 2.0.20
gatsby-transformer-remark: ^2.1.17 => 2.2.5
gatsby-transformer-sharp: ^2.1.7 => 2.1.13
npmGlobalPackages:
gatsby-cli: 2.4.5
์ฌ์ ํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ์ ์๋ง ์ด์ด์ฃผ์ธ์
System: OS: macOS 10.14.3 CPU: (4) x64 Intel(R) Core(TM) i5-7287U CPU @ 3.30GHz Shell: 5.3 - /bin/zsh Binaries: Node: 11.10.0 - /usr/local/bin/node Yarn: 1.13.0 - /usr/local/bin/yarn npm: 6.7.0 - /usr/local/bin/npm Browsers: Chrome: 72.0.3626.119 Firefox: 65.0.1 Safari: 12.0.3 npmPackages: gatsby: ^2.0.35 => 2.1.4 gatsby-cli: ^2.4.10 => 2.4.10 gatsby-image: ^2.0.19 => 2.0.29 gatsby-plugin-emotion: ^4.0.3 => 4.0.3 gatsby-plugin-google-analytics: ^2.0.8 => 2.0.14 gatsby-plugin-manifest: ^2.0.7 => 2.0.17 gatsby-plugin-netlify: ^2.0.3 => 2.0.11 gatsby-plugin-netlify-cms: ^3.0.12 => 3.0.12 gatsby-plugin-offline: ^2.0.10 => 2.0.23 gatsby-plugin-purgecss: ^3.1.0 => 3.1.0 gatsby-plugin-react-helmet: ^3.0.1 => 3.0.6 gatsby-plugin-sass: ^2.0.7 => 2.0.10 gatsby-plugin-sharp: ^2.0.10 => 2.0.20 gatsby-plugin-typography: ^2.2.2 => 2.2.7 gatsby-remark-copy-linked-files: ^2.0.7 => 2.0.9 gatsby-remark-images: ^3.0.1 => 3.0.4 gatsby-remark-relative-images: ^0.2.1 => 0.2.1 gatsby-source-filesystem: ^2.0.12 => 2.0.20 gatsby-transformer-remark: ^2.1.17 => 2.2.5 gatsby-transformer-sharp: ^2.1.7 => 2.1.13 npmGlobalPackages: gatsby-cli: 2.4.5
https://github.com/gatsbyjs/gatsby/issues/11072์ ์ธ๊ธ ๋๋๋ก ๋ฌธ์ ๋ 7058a256d2dcfab91259bdf00e811375737414e7์์ ํด๊ฒฐ๋์ด์ผํฉ๋๋ค.
๋ด ํน์ ์ฌ์ฉ ์ฌ๋ก์์๋ง @emotion/global
๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ์ญ ์คํ์ผ์ ์ฝ์
ํ๋ ๋ฐ ์ฌ์ฉ๋์์ต๋๋ค. ์ด๋ป๊ฒ ๋ ์ฝ๋ ๋ถํ ๋ฌธ์ ๋ @emotion/global
๊ธฐ๋ฅ๊ณผ ํจ๊ป ๊ณ์ ์ง์๋์์ต๋๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํ์ต๋๋ค. ์๋ฒฝํ ์๋ฃจ์ ์ ์๋์ง๋ง์ด ์ค์ ์์ ์๋ํ์ต๋๋ค.
^2.1.8
import { Global, css } from '@emotion/core'
์ฌ์ฉ ์์น๋ฅผ ํ์ธํ๊ณ CSS ์คํ์ผ์ ์ ํ์ผ๋ก ์ด๋ ./styles/global.css
// gatsby-brower.js
import './src/styles/globals.css'
rm -rf .cache && rm -rf public
๋น๋ ํด๋gatsby build
-> gatsby serve
์ด๊ฒ์ ์ค๋ง์ค๋ฌ์ด ๋ฌธ์ ์ ๋๋ค.
๋์๊ฒ react-pose
์ ๋๋ฉ์ด์
, ์ฆ gatsby-browser.js
๋ฐ gatsby-ssr.js
์์ ์ํ ๋ ์ ๋๋ฉ์ด์
์ ์ด์ํ ๋ถ๋ ์์
, ์ด์ค ๋ ๋๋ง ๋ฐ ํ์ด์ง๊ฐ ๋ ๋ฒ์งธ ์๋ก ๊ณ ์นจ์์ ์๋ํ๋ ์ผ๋ถ ๋น ๊ฒฐ์ ์ CSS ์์
์ ์ํํ์ต๋๋ค.
๋๋ ์ฌ์ ํ ์ ํํ ๋ฌธ์ ๋ฅผ ์ง์ ํ ์ ์์ง๋ง ๊ฒ์ฌํ๊ณ ๊ฒฐ๊ตญ ํ๋ฌ๊ทธ์ธ์ ์ ๊ฑฐํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๊ณ _solved_ it.
Gatsby๋ ๋ค๋ฅธ JS ๋๊ตฌ์ ํจ๊ป ๋ฉ์ง๊ณ ํ๋ คํ ์ ์์ง๋ง ํ๋ก๋์ ์์ ์ฌ์ฉํ์ง ์๋๋ก์ฃผ์ํ๊ณ ์ฑ ์์ ์ ธ์ผํฉ๋๋ค.
์๋ก์ด ๋ณต์ ๋ฌผ์ ๊ณต์ ํ ์ ์์ต๋๊น? css-in-js๋ฅผ ์ฌ์ฉํ ๋ ๊ทธ๊ฒ์ ์ฐ๋ฆฌ์ ์๋ชป์ด ์๋๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ๊ณ ์น ์์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด ๋ฌธ์ ๋ ๋ฐ์ํ์ต๋๋ค.
๋ฉฐ์น ์ ์ typography.js
ํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ typography.js
๊ธฐ๋ฐ ์คํ์ผ์ด gatsby develop
์์๋ ์ ์๋ํ์ง๋ง gatsby build
์์๋ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์์ ํ
ํ๋ฆฟ์์ ์ฑ์ ๋ง๋ค์์ต๋๋ค.
๋ฒ์ ์ ์
๊ทธ๋ ์ด๋ํ๋ ค๊ณ ํ๋๋ฐ ์๋ํ์ง ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ layout.css
๋ด ํด๊ฒฐ์ฑ
์ layout.css
์ ๋๊ธ์ ๋ฌ๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
typography.js ์ถ๊ฐ ํ ํ๋ก์ ํธ
https://github.com/Jasonlhy/Gatsbyjs-Blog/tree/ffb52973c21014b247a808e444319f8eede6eee6
layout.css
์ฃผ์ ์ฒ๋ฆฌ ํ ํ๋ก์ ํธ
https://github.com/Jasonlhy/Gatsbyjs-Blog/tree/658c7f8976d8d84a1fd28cb9aa6c99bbce2be9b3
@Jasonlhy ์ด๊ฒ์ ๋์๊ฒ ์ ํํ ๋ฌธ์ ์์ต๋๋ค. ๋ด ๊ตฌ์ฑ ์์ ํด๋์ layout.js
ํ์ผ์ด layout.css ํ์ผ์ ๊ฐ์ ธ์ค๊ณ ์์ต๋๋ค. ๊ฐ์ ธ ์ค๊ธฐ๋ฅผ ์ ๊ฑฐํ๊ณ npm run build
๋ฐ npm run serve
๋ค์ ์คํํ๋ฉด ์ฌ์ดํธ๊ฐ ์ ์์ ์ผ๋ก ํ์๋์์ต๋๋ค. ์ ๋ง ๊ณ ๋ง์ต๋๋ค!
์๋ก์ด ๋ณต์ ๋ฌผ์ ๊ณต์ ํ ์ ์์ต๋๊น? css-in-js๋ฅผ ์ฌ์ฉํ ๋ ๊ทธ๊ฒ์ ์ฐ๋ฆฌ์ ์๋ชป์ด ์๋๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ๊ณ ์น ์์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์ @wardpeet , ์ด๊ฒ์ ๋ด๊ฐ gatsby-plugin-styled-components๋ฅผ ์ถ๊ฐํ์ ๋ ๋ด ํ๋ก์ ํธ์์ ๋ฐฉ๊ธ ๋ํ ๋ฌ์ผ๋ฏ๋ก ์ ๋ฐ์ดํธ ๋ Gatsby์์ ๊ณ์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์๋ก์ด ์ฌํ์ด ์์ต๋๋ค.
๊ฐ์ธ ๋น๋ ๊ฐ๋ฐ๊ณผ ์์ฐ์์ <head>
๋ค๋ฅด๊ฒ ์ฃผ๋ฌธํฉ๋๋ค. ์ ์ญ CSS์ ํจ๊ป gatsby-plugin-styled-components๋ฅผ ์ฌ์ฉํ ๋ ์ด๋ก ์ธํด dev์ prod๊ฐ์ CSS๋ก๋ ์์๊ฐ ๋ฌ๋ผ ์๊ธฐ์น ์์ ์๊ฐ์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ # 9733์ ์ฐฌ์ฑํ์ฌ ์ฌ๋ฌ ์ ์ฌํ ๋ฌธ์ ์ ํจ๊ป ์ข ๋ฃ ๋ # 9908๊ณผ ๋์ผํ๋ฉฐ, @KyleAMathews ์ ๋ฐ๋ผ # 11800์์ ์์ ๋์๊ธฐ ๋๋ฌธ์ ์ข ๋ฃ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ Gatsby๊ฐ ์ ๋ฐ์ดํธ๋์๋์ง ํ์ธํ ํ์๋ # 9908์ ๋์์ด ํ์๋ฉ๋๋ค.
์ด repo : https://github.com/vivshaw/vivshaw์ ๋ฌธ์ ์ ๋ํ ์ค์ (ํ์ง๋ง ์ต์ํ์) ์์ ๊ฐ ์์ต๋๋ค. ์ด ์ฌ์ดํธ์๋ Bulma CSS ํ๋ ์ ์ํฌ๋ฅผ ํฌํจํ ์ ์ญ CSS ๋ฉ์ด๋ฆฌ๊ฐ ์์ผ๋ฉฐ ๋๋จธ์ง ์ฌ์ดํธ๋ ์คํ์ผ ๊ตฌ์ฑ ์์์์ ์ํ๋ฉ๋๋ค. ํ๋ก๋์ ๋ฒ์ ์ netlify์ ์์ต๋๋ค.
gatsby develop
๋ฐ gatsby build
gatsby serve
๋ชจ๋ ๋์ผํ๊ฒ ํ์๋์ด์ผํฉ๋๋ค. ์คํ์ผ๋ก๋ ์์๋ ์ผ๊ด์ฑ์ด ์์ด์ผํฉ๋๋ค.
ํ๋ก๋์ ์ฉ์ผ๋ก ๋น๋๋๋ฉด ์ฌ๋ฐ๋ฅธ ํ์ด์ง ์คํ์ผ์ด ํ์๋ฉ๋๋ค.
๊ทธ๋ฌ๋ gatsby develop
๋ก๋ํ๋ฉด ์ธํธ๋ก ์น์
์ ํจ๋ฉ์ด AWOL์ด๋ฉ๋๋ค.
๋๋ ์ฝ๊ฐ์ ํ๊ณ ๊ทธ ์ด์ ๋ฅผ ์์ ๋๋ค. ํ๋ก๋์ ์์ Gatsby๋ ์ฌ๊ธฐ์ ๊ฐ์กฐ ํ์๋ ๋ ์ค์์ ๋ณผ ์ ์๋ฏ์ด ์คํ์ผ ๊ตฌ์ฑ ์์ ์คํ์ผ ์ด์ ์ ์ ์ญ CSS ์ฒญํฌ๋ฅผ๋ก๋ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ฐ๋ฐ์์๋ ์คํ์ผ ๊ตฌ์ฑ ์์ ์คํ์ผ์ด ๋จผ์ ๋ก๋๋ฉ๋๋ค.
์ด๋ก ์ธํด ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ธ์, ๋๋ Bulma ํด๋์ค์ ์คํ์ผ ๊ตฌ์ฑ ์์ ์์ฑ ํด๋์ค๋ก ํ๊ทธ๊ฐ ์ง์ ๋ ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค. ๋ ํด๋์ค ๋ชจ๋ ํจ๋ฉ ์์ฑ์ ์ํฅ์ ๋ฏธ์น๋ฏ๋ก ๋ง์ง๋ง์ผ๋ก๋ก๋๋๋ ํด๋์ค๊ฐ ์ ์ฉ๋๋ ํด๋์ค์ ๋๋ค. ์ด ๊ฒฝ์ฐ Bulma ํด๋์ค๋ฅผ ์ ๊ฑฐํ๊ธฐ ๋งํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋์ด๋ก๋ ์์ ๋์์ผ๋ก ์ธํด ๋ ๋ณต์กํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์ํฉ์ ์์ํ ์ ์์ต๋๋ค.
> gatsby info
System:
OS: Windows 10
CPU: (4) x64 Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
Binaries:
Yarn: yarn install v0.27.5
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 118.04s. - ~\AppData\Roaming\npm\yarn.CMD
npm: 6.4.0 - C:\Program Files\nodejs\npm.CMD
Languages:
Python: 2.7.13 - /c/Python27/python
Browsers:
Edge: 42.17134.1.0
npmPackages:
gatsby: ^2.3.16 => 2.3.16
gatsby-image: ^2.0.37 => 2.0.37
gatsby-plugin-eslint: ^2.0.4 => 2.0.4
gatsby-plugin-layout: ^1.0.14 => 1.0.14
gatsby-plugin-manifest: ^2.0.28 => 2.0.28
gatsby-plugin-netlify: ^2.0.13 => 2.0.13
gatsby-plugin-netlify-cms: ^3.0.17 => 3.0.17
gatsby-plugin-offline: ^2.0.25 => 2.0.25
gatsby-plugin-purgecss: ^3.1.1 => 3.1.1
gatsby-plugin-react-helmet: ^3.0.12 => 3.0.12
gatsby-plugin-robots-txt: ^1.4.0 => 1.4.0
gatsby-plugin-sass: ^2.0.11 => 2.0.11
gatsby-plugin-sharp: ^2.0.32 => 2.0.32
gatsby-plugin-sitemap: ^2.0.12 => 2.0.12
gatsby-plugin-styled-components: ^3.0.7 => 3.0.7
gatsby-plugin-webpack-size: 0.0.3 => 0.0.3
gatsby-source-filesystem: ^2.0.29 => 2.0.29
gatsby-transformer-remark: ^2.3.8 => 2.3.8
gatsby-transformer-sharp: ^2.1.17 => 2.1.17
๊ฐ์ฌํฉ๋๋ค.์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์๋์ง ํ์คํ์ง ์์ ๊ฒฝ์ฐ ํค๋ ๊ตฌ์ฑ ์์์ ์ผ์ข ์ ์ ๋ ฌ์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
@topherauyeung์ด ์์์ ์ธ๊ธ ํ ๊ฒ๊ณผ ๋์ผํ ์ข ๋ฅ์ ๋ฌธ์ ๊ฐ ํ์๋จ
gatsby info
System:
OS: macOS High Sierra 10.13.4
CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.7.0 - /usr/local/bin/node
Yarn: 1.15.2 - ~/.yarn/bin/yarn
npm: 6.4.1 - /usr/local/bin/npm
Languages:
Python: 2.7.10 - /usr/bin/python
Browsers:
Chrome: 73.0.3683.103
Firefox: 66.0.2
Safari: 11.1
npmPackages:
gatsby: ^2.3.24 => 2.3.27
gatsby-image: ^2.0.39 => 2.0.40
gatsby-plugin-manifest: ^2.0.29 => 2.0.29
gatsby-plugin-material-ui: ^1.2.4 => 1.2.4
gatsby-plugin-offline: ^2.0.25 => 2.0.25
gatsby-plugin-react-helmet: ^3.0.12 => 3.0.12
gatsby-plugin-sharp: ^2.0.35 => 2.0.35
gatsby-plugin-typography: ^2.2.13 => 2.2.13
gatsby-source-filesystem: ^2.0.29 => 2.0.31
gatsby-transformer-sharp: ^2.1.18 => 2.1.18
npmGlobalPackages:
gatsby-cli: 2.5.4
์ด ๋ฌธ์ ๋ ์์ต๋๋ค. NPM ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ ธ ์ค๋ gatsby repo๊ฐ โโ์์ต๋๋ค. ๊ตฌ์ฑ ์์๋ ๋น๋์ ์๋ชป๋ ์์๋ก <head>
์ ์ฝ์
๋๋ .scss
ํ์ผ์ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ๋ฐ์ ๊ฐ์ธ ๋น ๋ฆฌํฌ์งํ ๋ฆฌ์ ์คํ์ผ์ด ๋ง์ง๋ง์ ๋์ค๋ฏ๋ก ์ฐ์ ๊ถ์ ๊ฐ์ง์ง ๋ง ๋น๋์์๋ ๋จผ์ ๊ฐ์ ธ ์์ ๊ฐ์ ธ์จ ๊ตฌ์ฑ ์์์ ์คํ์ผ๋ก ์ฌ์ ์๋ฉ๋๋ค.
๋น์ทํ ๋ฌธ์ ๊ฐ์์ ์ ์์ต๋๋ค. ์คํ์ผ์ ๋ค์ด๋ด๋ฏนํ๊ฒ๋ก๋ํฉ๋๋ค.
componentDidMount() {
require("./source.less")
}
์ด ๋ฌธ์ ๋ ๋ฐ๊ฒฌํ์ต๋๋ค. ํ์ง๋ง ์ ๊ฒฝ์ฐ๋ ๋จ์ํ ์ค์์์ต๋๋ค.
๋๋ ์ฌ์ฉํ๊ณ ์์๋ค
<Button href="/path/to/page">blah blah</Button>
Gatsby Link๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝํ๋ฉด ์๋ํฉ๋๋ค.
<Link to="/path/to/page">
<Button>blah blah</Button>
</Link>
๊ฐ์ ๋ฌธ์ ์ ๋๋ค. ๋๋ฒ๊น ์ ์๋ํ๋ ๋์ ์๋ฃจ์ ์ ์ฃผ์ํฉ๋๋ค.
๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์ถ๊ฐํ์ง๋ง ์ต๊ทผ์๋ง ๋ฌธ์ ๊ฐ๋์์ต๋๋ค.
์ ๋ Typography.js์ Bootstrap์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ํ๋ก๋์
์์ ๋ถํธ ์คํธ๋ฉ์ ๋ด๊ฐ ์ํ๋ typography.js์ ์ํด ๋ฌด์๋์ง๋ง dev ์๋ฒ์์๋ Bootstrap ๊ธ๊ผด ์คํ์ผ์ด ๋ด ํ์ดํฌ๊ทธ๋ํผ ์คํ์ผ์ ์ฌ์ ์ํฉ๋๋ค. ์ฌ์ดํธ๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ์๊ฒผ๋์ง ํ์ธํ๊ธฐ ์ํด ์ฌ์ดํธ๋ฅผ ๋ฐฐํฌํด์ผํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋งค์ฐ ํ๊ฐ๋ฉ๋๋ค. ๋๊ตฌ๋ ์ง ๋ด๊ฐ gatsby์์ typography.js๋ก ๋ถํธ ์คํธ๋ฉ์ ์ด๋ป๊ฒ ๋ฎ์ด ์ธ ์ ์๋์ง ์๊ณ ์๋ค๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์ถ๊ฐํ์ง๋ง ์ต๊ทผ์๋ง ๋ฌธ์ ๊ฐ๋์์ต๋๋ค.
์ ๋ Typography.js์ Bootstrap์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ํ๋ก๋์ ์์ ๋ถํธ ์คํธ๋ฉ์ ๋ด๊ฐ ์ํ๋ typography.js์ ์ํด ๋ฌด์๋์ง๋ง dev ์๋ฒ์์๋ Bootstrap ๊ธ๊ผด ์คํ์ผ์ด ๋ด ํ์ดํฌ๊ทธ๋ํผ ์คํ์ผ์ ์ฌ์ ์ํฉ๋๋ค. ์ฌ์ดํธ๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ์๊ฒผ๋์ง ํ์ธํ๊ธฐ ์ํด ์ฌ์ดํธ๋ฅผ ๋ฐฐํฌํด์ผํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋งค์ฐ ํ๊ฐ๋ฉ๋๋ค. ๋๊ตฌ๋ ์ง ๋ด๊ฐ gatsby์์ typography.js๋ก ๋ถํธ ์คํธ๋ฉ์ ์ด๋ป๊ฒ ๋ฎ์ด ์ธ ์ ์๋์ง ์๊ณ ์๋ค๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๋ด๊ฐ ์ํ๋๋๋ก ๋ถํธ ์คํธ๋ฉ์ ๋ค์ ๋น๋ํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ฌ๊ธฐ์ ๊ฐ์ ๋ฌธ์ -https: //github.com/gatsbyjs/gatsby/issues/16075
์ฌ๊ธฐ์ ์ค๋ช
๋ ๊ฒ๊ณผ ์ ์ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. CSS ํ๋ ์ ์ํฌ (๋ชจ๋ ์ฌ์ฉ์ ์ง์ .sass)๋ฅผ ์ฌ์ฉํ์ง ์์ง๋ง ์ผ๋ถ ์คํ์ผ, ์์ ๋ฐ ํด๋์ค๋ gatsby develop
๋ฐ gatsby build
๊ฐ์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค.
์ด๊ฒ์ URLSearchParams(window.location.search)
์ฌ์ฉํ์ฌ ๊ฒ์ ๋งค๊ฐ ๋ณ์๋ฅผ ํ์ธํ๋ ํ์ด์ง์์ ๋ฐ์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋งค๊ฐ ๋ณ์์ ์กด์ฌ ์ฌ๋ถ์ ๋ฐ๋ผ ๋์ ์ผ๋ก ์์๋ฅผ ํ์ํฉ๋๋ค. develop
์ URL๋ก ์ง์ ์ด๋ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํฉ๋๋ค. build
์์๋ ๋ชจ๋ ๊ฒ์ด ๋ค์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค.
์์ ( develop
) :
์ค์ ( build
) :
์กฐ๊ฑด๋ถ ๋ ผ๋ฆฌ :
{(!!params ? !params.has('signup') : true) && (
<div className={[ styles.form__element, styles.contact__message, ].join( ' ')}>
<label htmlFor="message">
Message
<textarea required minLength="10" name="message" id="message" cols="30" rows="10" className={styles.form__control} placeholder="Questions, comments, etc..." />
</label>
</div>
)}
params
์ค์ :
const params = typeof window !== `undefined` ? new URLSearchParams(window.location.search) : ''
System:
OS: macOS 10.14.6
CPU: (8) x64 Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.15.3 - /usr/local/bin/node
npm: 6.10.2 - /usr/local/bin/npm
Languages:
Python: 2.7.10 - /usr/bin/python
Browsers:
Chrome: 76.0.3809.100
Safari: 12.1.2
npmPackages:
gatsby: ^2.13.50 => 2.13.50
gatsby-image: ^2.2.8 => 2.2.8
gatsby-plugin-google-analytics: ^2.1.6 => 2.1.6
gatsby-plugin-hotjar: ^1.0.1 => 1.0.1
gatsby-plugin-manifest: ^2.2.4 => 2.2.4
gatsby-plugin-offline: ^2.2.4 => 2.2.4
gatsby-plugin-react-helmet: ^3.1.3 => 3.1.3
gatsby-plugin-sass: ^2.1.4 => 2.1.4
gatsby-plugin-sharp: ^2.2.9 => 2.2.9
gatsby-plugin-sitemap: ^2.2.5 => 2.2.5
gatsby-remark-external-links: 0.0.4 => 0.0.4
gatsby-source-contentful: ^2.1.17 => 2.1.17
gatsby-source-filesystem: ^2.1.8 => 2.1.8
gatsby-transformer-remark: ^2.6.10 => 2.6.10
gatsby-transformer-sharp: ^2.2.5 => 2.2.5
npmGlobalPackages:
gatsby-cli: 2.7.27
@ j-651 ๊ฐ์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ก์ปฌ ์ ์ฅ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์กฐ๊ฑด๋ถ๋ก ํด๋์ค ์ด๋ฆ์ ๋ ๋๋งํ๋ฉด ์๋ชป๋ ํด๋์ค ์ด๋ฆ์ด ๋ ๋๋ง๋ฉ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
@OrKoN ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ด๊ฐ ํ ์ผ์ ์๋ณธ ์กฐ๊ฐ์ ๊ตฌ์ฑ ์์๋ก ์ฌ์ฉํ์ฌ ๋ณ๋์ ํ์ด์ง๋ฅผ ๋ง๋ ๋ค์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ํด ์ํ์ ์ ๋ฌํ๋ ๊ฒ์ด ์์ต๋๋ค. ์ด๊ฒ์ด ๊ตฌํ์์ ์๋ํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฒซ์งธ, ์คํ์ผ์ด ์ง์ ๋ ๊ตฌ์ฑ ์์ ๋๋ฌธ์ ๋ค๋ฅธ ๋ฒ์ ์ ์ฌ์ฉํ์ต๋๋ค. ๋๋ gatsby-plugin-styled-components
ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ๊ณ ๊ทธ๊ฒ๋ค์ ์ค์ค๋ก ์์ ๋์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ MaterialUI๊ฐ ์ค๋จ๋๊ธฐ ์์ํ์ฌ gatsby-plugin-material-ui
๋ฅผ ์ถ๊ฐํ์ง๋ง ์ฌ์ ํ ์ด์ด ์์ต๋๋ค. ์ฌ๋ฃ UI๋ ๋ฐฐํฌ์ ์ฌ์ ํ ์์๋ฉ๋๋ค.
์์ฐ:
Dev (๋ก์ปฌ)
๋ด ๋ฌธ์ ๋ฅผ ์ฌํํ๊ณ ๋ฆฌํฌ์งํ ๋ฆฌ https://github.com/gatsbyjs/gatsby/issues/16925 ์์ ๋ถ๋ฆฌ ํ ์์์์ต๋๋ค. ๋งํฌ ๊ตฌ์ฑ ์์์ ๋์๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ ์๋ง๋ ๋ค๋ฅธ ๋ฌธ์ ์ผ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ ์ ํ ํด๊ฒฐ์ฑ ์ ์๋์ง๋ง ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ์ํด ํจ๊ป ๊ฐ์ผํ๋ ๋น ๋ฅธ ์์ ์ผ๋ก ์ฐจ์ํ๊ณ ์ถ์์ต๋๋ค.
typography.js์ ์ถ๋ ฅ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ๊ณ .scss ํ์ผ์ ๋ฃ์ ๋ค์ ๋์ค์ ์ฝ๊ฐ์ ๋ฉ์์ง์ ํจ๊ป ๋ค๋ฅธ ๋ชจ๋ ํญ๋ชฉ์ ๊ฐ์ ธ ์์ต๋๋ค.
typographyjs-output.scss
์ด ํ์ผ์ ๋ฌด์ํ๊ณ ๊ฐ์ฌํฉ๋๋ค!
typography.js์์ ์์ฑ ๋ CSS๋ฅผ ์ถ์ถํ์ฌ ์ฌ๊ธฐ์ ๋ฐฐ์นํด์ผํ์ต๋๋ค.
์? ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ญ์์ค : https://github.com/gatsbyjs/gatsby/issues/8560
ํ๋ก๋์ ๋น๋๋ dev์ ๋ค๋ฅธ ์์๋ก SCSS ๋ฐ css-in-js๋ฅผ ๊ฐ์ ธ์ต๋๋ค (ํญ์ ์ผ๊ด๋ ์์์ธ์ง ํ์คํ์ง ์์).
'gatsby-plugin-typography'๋ฅผ ์ ๊ฑฐํ๊ณ ์ผ๋ฐ ol '์คํ์ผ ์ํธ์ฒ๋ผ ์์ฑ ๋ CSS๋ฅผ ๊ฐ์ ธ ์์ต๋๋ค.
Typography.js๋ ์ฒ์๋ถํฐ ํ๋ก์ ํธ์ ํฌํจ๋์์ผ๋ฉฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ์์ํ์ง ๋ชปํ์ต๋๋ค.
์-์ด ๊ธฐ๋ณธ๊ฐ์ด ํฌํจ ๋ ๋๋จธ์ง ์ฌ์ดํธ์ ์คํ์ผ์ ์ง์ ํ์ผ๋ฏ๋ก์ด ํ์ผ์ ์ ๊ฑฐํ๋ฉด ์ํฉ์ด ์ข ์ด์ํด ๋ณด์ ๋๋ค.
๊ฝค ๋์ฐํ ํด๊ฒฐ์ฑ ์ด์ง๋ง ๋น์ ์ด ๋ฌถ์ฌ ์๋ค๋ฉด ์๋ํฉ๋๋ค.
๋ฐฉ๊ธ ๊นจ๋ฌ์ ๊ฒ์ ์ด๊ธฐ ํ์ด์ง๋ก๋์ CSS๊ฐ ๊นจ์ก์ง๋ง ํ์ด์ง๋ฅผ ๋ณ๊ฒฝ ํ ๋ค์ ๋ค์ ํ ํ์ด์ง๋ก ๋์ ๊ฐ๋ฉด CSS๊ฐ ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. CSS๊ฐ ์ ๋๋ก ๋ณด์ด์ง ์๊ณ ๋งค์ฐ ๋๋ฆฌ๊ฒ๋ก๋๋๋ ๊ฒ์ ์ด๊ธฐ ํ์ด์ง๋ก๋์์๋ง ๋ฐ์ํฉ๋๋ค.
Material-UI๋ฅผ ์ฌ์ฉํ์ฌ gatsby.config.js์์ gatsby-plugin-material-ui๋ฅผ ๋ ๋ฒ ํธ์ถํ์ต๋๋ค. ์ด๊ธฐ ํ์ด์ง๋ก๋์ ๊น๋ฐ์์ด ์์๊ณ ์ผ๋ถ ์คํ์ผ์ด ๊ฐ๋ ์ถ๊ฐ๋์ง ์์์ต๋๋ค. ์ด์ ์ต์ ํ๋ฌ๊ทธ์ธ ๋ฒ์ ๊ณผ ํจ๊ป ์๋ํ๋ฉฐ์ด ๋ชจ๋์ gatsby.config.js์ ํ๋ฌ๊ทธ์ธ ๋ฐฐ์ด์์ ๋ด ๋ณด๋
๋๋ค.
,
{
resolve: 'gatsby-plugin-material-ui',
// If you want to use styled components you should change the injection order.
options: {
// stylesProvider: {
// injectFirst: true,
// },
},
}
์ฌ๊ธฐ์์ ํด๊ฒฐ์ฑ ์ ์ฐพ์ ์ฌ๋์ด ์์ต๋๊น? ๋ก์ปฌ์ ๊ด์ฐฎ์ง ๋ง ํ๋ก๋์ (์ฒซ ํ์ด์ง๋ณด๊ธฐ)์์ ์๋ชป๋ ์คํ์ผ์ด ํ์๋ฉ๋๋ค. ์ : ๊ตฌ์ฑ ์์์๋ ํ๋ก๋์ ์ jss13 ๋ฐ jss14๊ฐ ์์ง๋ง ํด๋น ํด๋์ค๋ jss43 ๋ฐ jss45 ์ฌ์ผํฉ๋๋ค. ๋๋ ๋ํ ๋จธ๋ฆฌ์ ์คํ์ผ ์์๊ฐ ๋ค๋ฅธ ๊ฒ์๋ณด๊ณ ์์ง๋ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ดํด์๋ ์์ด ๋ฒ๋ ธ์ต๋๋ค ... ๋ ํ๋ฌ๊ทธ์ธ๋ ํฌํจ๋์ด ์์ง๋ง ์ด์ด ์์ต๋๋ค.
plugins: [
'gatsby-plugin-styled-components',
'gatsby-plugin-material-ui',
];
@ocundale ์ ์๊ฒ ์์ ์ material-ui ์คํ์ผ๋ง ๋ฐฉ๋ฒ์ ์ ๊ฑฐํ๋ ๊ฒ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ ์ฝ๋๋ ํ๋ก๋์ ์ผ๋ก ํธ์ ํ ๋ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ผ๋จ ์ด๊ฒ์ ์ ๊ฑฐํ๊ณ ์ด ์คํ์ผ์ ์ธ๋ผ์ธ CSS๋ก ๋ฃ์ผ๋ฉด ๋ชจ๋ ๊ฒ์ด ์๋ ํ๋๋ก ์๋ํ์ต๋๋ค.
const MyTab = styled(Tab)({
border: '1px solid grey',
borderRadius: '50px',
fontSize: '12px',
marginRight: '16px'
})
์ํํ์ฌ ์์
<Tab style={{
border: '1px solid grey',
borderRadius: '50px',
fontSize: '12px',
marginRight: '16px'
}}>
...
</Tab>
์ข์, ๊ฐ์ฌํฉ๋๋ค @ Skillz4Killz , ๋น ๋ฅธ ์๋ต์ ๊ฐ์ฌ ๋๋ฆฌ๋ฉฐ, ๋ถ๋๋ฌ์ด ๊ฒ ๊ฐ์ง๋ง ๊ทธ๋๋ ๋์ผํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์๊ฐํฉ๋๋ค. ๊ฑด๋ฐฐ!
์ด๊ฒ์ ์ ์ ํ ํด๊ฒฐ์ฑ ์ ์๋์ง๋ง ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ์ํด ํจ๊ป ๊ฐ์ผํ๋ ๋น ๋ฅธ ์์ ์ผ๋ก ์ฐจ์ํ๊ณ ์ถ์์ต๋๋ค.
๋ด ์์ ์์ ์ ๋ด CSS์ ๋ชจ๋ ์ค์ !important
์ ์ถ๊ฐํ์ฌ ํ
ํ๋ฆฟ CSS์ ์ํด ์ฌ์ ์๋์ง ์์์ต๋๋ค. ์์ธํ๋ค.
@ gatsbyjs / core์ด ๋ฌธ์ ๋์ด ์ ์ฅ์ ์ ์ฒด์์ ์ฌ๋ฌ ๋ฒ ๋ค๋ฅธ ๋ณํ์ผ๋ก ๋ํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. # 3741 # 5100 # 9911 # 10370 # 12360 # 14601 # 17676 # 17728 (๋ ๋ง์ ๊ฒ์ด์์ ๊ฑฐ๋ผ ํ์ ํฉ๋๋ค.
์ด๊ฒ์ ๋ช
ํํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด์๊ณ ์ฌ์ดํธ์ ๋น ๊ฒฐ์ ์ ์ผ๋ก ์ํฅ์ ๋ฏธ์น๊ณ ๋งค์ฐ ๊ฐ์ ์ ์ธ ๋ถ์์ฉ์ด ์๊ธฐ ๋๋ฌธ์ ์ข
์ข
"์ ๋นํ ๋ฐฉ์"์ผ๋ก ๋ํ๋๊ธฐ ๋๋ฌธ์ ์ฌ๊ฐํ ๋ฌธ์ ์
๋๋ค. ๋์ผํ HTML ์์ (ํนํ class
์์ฑ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ _ ๋งค์ฐ _ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก์
๋๋ค.
# 14601์์ ๋งํ ๋ด์ฉ์ด ๋ง๋ค๋ฉด React 16์ ๋์ ๋ ์ํ ๊ธฐ๋ฅ ํตํฉ ๋ฌธ์ ์ ๋๋ค.
๊ฐ๋ฐ ๋ชจ๋์์์ด ๋ฌธ์ ๋ฅผ ๋ ์ผ์ฐ ๋ฐ๊ฒฌํ๋ ๋ฐ ๋์์ด๋๋ # 10706์ด ์์ง๋ง ๋ด๊ฐ ์ดํดํ๋ ํ ์์ ํ์ง๋ ์์ต๋๋ค.
์ด๊ฒ์ ๊ฒฝํํ๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ๋ ์ธ๋ผ์ธ CSS / ์ค์ํ ๊ฒ์ ์ฌ์ฉํ์ง ์๊ณ ์์ ํ ์์์์ต๋๋ค.
๊ณํ๋ ์ ๊ทผ ๋ฐฉ์์ด ์๋๊ณ ์ค์ ๋ก ์ด์ด ์ข์์ง ๋ง Material-UI๋ฅผ ๋ฒ์ > 4๋ก ์
๊ทธ๋ ์ด๋ํ๋ ๊ฒ๊ณผ ํจ๊ป _gatsby-plugin-material-ui_ ๋ฐ _gatsby-plugin-styled-components_ ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ์ผ๋ฉฐ ๋ ์ด์ ๋ฌธ์ ๊ฐ ๋ณด์ด์ง ์์ต๋๋ค.
{
resolve: 'gatsby-plugin-material-ui',
options: {
stylesProvider: {
injectFirst: true,
},
},
},
'gatsby-plugin-styled-components',
"@material-ui/core": "^4.0.0",
"@material-ui/icons": "^4.0.0",
"@material-ui/styles": "^4.4.1",
๋๋ ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค.
์ด ์ ์ฅ์์์ ์ฒ์ ์ ๊ธฐ๋ณธ ์คํํฐ ์์ ๋ณต์ ๋ ์ gatsby ์ฌ์ดํธ๋ฅผ ๋ง๋ญ๋๋ค : https://github.com/eyalroth/gatsby-hydrate-bug
์ข ์์ฑ / ํ๋ฌ๊ทธ์ธ์ด ๊ฑฐ์ ์์ต๋๋ค.
$ gatsby info
System:
OS: Linux 4.4 Ubuntu 16.04.6 LTS (Xenial Xerus)
CPU: (4) x64 Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz
Shell: 4.3.48 - /bin/bash
Binaries:
Node: 10.16.0 - ~/n/bin/node
Yarn: 1.17.3 - /usr/bin/yarn
npm: 6.11.3 - ~/n/bin/npm
Languages:
Python: 2.7.12 - /usr/bin/python
npmPackages:
gatsby: ^2.15.22 => 2.15.22
gatsby-plugin-offline: ^3.0.8 => 3.0.8
npmGlobalPackages:
gatsby-cli: 2.7.44
์ฌ์ดํธ์๋ 2 ํ์ด์ง์ ๋ ์ด์์์ด ์์ต๋๋ค. ๋ ์ด์์์ wrapPageElement
๋ฅผ ํตํด 2 ํ์ด์ง์ ์๋์ผ๋ก ์ถ๊ฐ๋ฉ๋๋ค ( gatsby-plugin-layout
์์์ ๊ฑฐ์ ๋์ผํ ์ฝ๋). ๋ ์ด์์์ ํ์ฌ ์๊ฐ์ผ๋ก ์ค์ ๋ class
์์ฑ์ด์๋ div
ํ์ด์ง ์ฝํ
์ธ ๋ฅผ ๋ํํ๋ ๋์์ ํ์ด์ง ์ฝํ
์ธ ์๋์ ํ
์คํธ๋ก ์๊ฐ์ ์ถ๊ฐํฉ๋๋ค.
์ฌ์ดํธ๋ฅผ ๊ตฌ์ถ (๋ฐ ์ ๊ณต)ํ๊ณ ์์ธ์ผ๋ก ์ด๋ํ์ฌ ๊ฐ๋ฐ์ ๋๊ตฌ์์ ๊ฒ์ฌํ๋ฉด ํ์ด์ง์ ํ์๋ ์๊ฐ์ด div
class
์ ๋์ผํ์ง ์์์ ์ ์ ์์ต๋๋ค. ์์ฑ:
๋ ๋ฒ์งธ ํ์ด์ง๋ก ์ด๋ํ๋ฉด์ด ๋์์ด ์์ ๋๊ณ ํ์ด์ง ์ฝํ
์ธ ์ class
์์ฑ ์ฌ์ด์ ์๊ฐ์ด ๋์ผํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๋์ผํ ์ฐฝ์์ ํ์ด์ง ์ฌ์ด๋ฅผ ๊ณ์ ํ์ํ๋ ํ ์ ์ง๋ฉ๋๋ค. ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น๊ฑฐ๋ ์ฐฝ์์ ์ด๋ฉด ๋ถ์ผ์น๊ฐ ๋ค์ ๋ํ๋ฉ๋๋ค. ์ค์ ๋ก class
์์ฑ์ ์๊ฐ์ ์๋ก ๊ณ ์นจ ํ ๋๋ง๋ค ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค (์บ์๋จ์ ์์). "๊ฐ์ ์๋ก ๊ณ ์นจ"(CTRL + F5)์ ํ์ด์ง๋ฅผ ์ ๋๋ก๋ก๋ํฉ๋๋ค.
์ด ๋ฌธ์ ์ ํน์ ์ธ์คํด์ค๋ gatsby-plugin-offline
ํ์ฑํ ๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํ๋ฉฐ gatsby-plugin-layout
๋ฐ wrapPageElement
์ ๋ค๋ฅธ ๊ตฌํ์ ์ง์ ์ ์ธ ์ํฅ์์ค๋๋ค.
๋ด๊ฐ ์ง๊ธ๊น์ง ์๊ฐ ํด๋ธ ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ hydrate ํจ์๋ฅผ render๋ก ๋ฐ๊พธ๋ ๊ฒ์ ๋๋ค .
// gatsby-browser.js
const ReactDOM = require('react-dom')
export function replaceHydrateFunction() {
return (element, container, callback) => {
ReactDOM.render(element, container, callback)
}
}
๋ค์ ๋งํ์ง๋ง, ์ด๊ฒ์ https://github.com/facebook/react/issues/10591 , https://github.com/ ๊ณผ ๊ฐ์ React ์ ์ฅ์์ ์ฌ๋ฌ ๋ฌธ์ ์์ ๋ ผ์ ๋ ๋ฐ์ ๊ฐ์ด ์ํ๋ฌผ ๋ฐฉ๋ฒ์ ์กฐ์ ๋ฌธ์ ์ ๋๋ค. facebook / react / issues / 12713 , https://github.com/facebook/react/issues/13260.
"์ํ"์ ์ ์ฒด ๋ชฉ์ ์ ์ผ๋ฐ ๋ ๋๋ง๋ณด๋ค ์ฑ๋ฅ์ ๋์ด๋ ๊ฒ์ด๋ฏ๋ก ์ฑ๋ฅ์ด ์ ํ ๋ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด https://github.com/gatsbyjs/gatsby/issues/17914 ์ ์ฐฌ์ฑํฉ๋๋ค.
@eyalroth ์ ๋ ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. https://github.com/gatsbyjs/gatsby/issues/17914 ์์ ์ด์ ๋ํด ๋ ผ์ํ๊ณ ์ด๊ฒ์ ํ๋จ์ ๋๋ฌํฉ์๋ค
๋๋ ๋ํ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. Gatsby ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ด์ฐฎ ์์ง๋ง ๋ฌธ์ ํ์ด์ง๋ฅผ ๋ค์๋ก๋ ํ ๋ ๋น๋๋์์ต๋๋ค. className ๋ฐ ์ฌ์ง์ด ์ธ๋ผ์ธ ์คํ์ผ์ด ํน์ ํ๊ทธ์์ ์ ๊ฑฐ๋์์ต๋๋ค. ์์ฑ์ด์๋ div๊ฐ ๋จ์์ง ๋ง ๋ชจ๋ ์ด๋ฆฐ์ด๊ฐ ๋ ๋๋ง๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ ์ฒด ํ์ด์ง ์๋ก ๊ณ ์นจ์ด ์๋ ๊ฐ์ธ ๋น ๋งํฌ ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ์ ๋. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
์ด๊ฒ์ ๋๋ฅผ ๋ช ์๊ฐ ๋์ ๋ฏธ์น๊ฒ ๋ง๋ค์๋ค. ๋๋ ๋์ฐํ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ง๋ง ์๋ง๋ ์ข์ ๋ฐฉ๋ฒ์ ์๋์ง๋ง ์ง๊ธ์ ์๋ํ์ต๋๋ค.
ํ์ง๋ง (div) ํ๊ทธ๋ฅผ (article)๋ก ๋ณ๊ฒฝํ์ต๋๋ค.
๊ฐ์๊ธฐ
<div>
๋์๋ค
<article class="CartSummary-module--summary--3zJVn">
๋น๋์
๊ทธ๊ฒ์ ๋ํ ul ๋ฐ pre์ ํจ๊ป ์๋ํ์ต๋๋ค.
@ stefantrinh1 ๋ฏธ์น ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค- ์ ๋์ด ๋ฏธ์น CSS ๋์์ ๊ฒฝํํ๊ณ
๋๊ตฐ๊ฐ ๋ณต์ ๋ ๊ฒ์๋ณด๊ณ ์ถ๋ค๋ฉด ๊ณต๊ฐ ์ ์ฅ์๊ฐ ์๊ณ ๋ ๋ฒ์ ์ ๋ชจ๋ ๋ฐฐํฌํ์ต๋๋ค.
@ stefantrinh1 ์ article
ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
https://github.com/funkfinger/blog/tree/good
https://good.jaywiggins.com
์๋ํ์ง ์๋๋ค
https://github.com/funkfinger/blog/tree/bad
https://bad.jaywiggins.com
์กฐ๊ฑด๋ถ๋ก ์ฟ ํค ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ฑ ์์๋ฅผ๋ก๋ํ๋ ๋์ ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ฌผ๋ก ์ด๊ฒ์ ํ๋ก๋์
์ SSR์ด ์์ผ๋ฏ๋ก ์๋ํ์ง ์์์ต๋๋ค (์ ๊ฐ๋ฐ ๋ชจ๋์์ ์๋ํ๋์ง ํ์คํ์ง ์์). ์ด์จ๋ , ๋ด๊ฐ ํ ์ผ์ useEffect
์์ ์ํ๋ฅผ ๋ํํ๊ณ React๊ฐ ํด๋ผ์ด์ธํธ๋ฅผ ์ธ์ (์ฌ์ ํ)ํ๋ฉด ๋ ๋๋ง ํ ๊ตฌ์ฑ ์์๋ฅผ ํ์ธํ๋ ๊ฒ์
๋๋ค. ํด๋์ค ๊ตฌ์ฑ ์์์ componentDidMount()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๊ตฌํํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์๋ํฉ๋๋ค.
๋ด ๋ฌธ์ ๋ gatsby-browser.js
์์๋ wrapPageElement
๋ฐ wrapRootElement
๋ฅผ ์ฌ์ฉํ์ง๋ง gatsby-ssr.js
์์๋ ์ฌ์ฉํ์ง ์์๋ค๋ ๊ฒ์
๋๋ค. ๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ gatsby-ssr.js
๋ณต์ฌํ์ ์์๋๋ก ์๋ํ๊ธฐ ์์ํ์ต๋๋ค. @jlkiri ์ ์๋ต์ ์ฐธ์กฐํ์ญ์์ค : https://github.com/gatsbyjs/gatsby/issues/22113#issuecomment -597432337
2020 ๋
๊ฐ์ ํธ. ํด๋ฆญ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง๋ง ์ ์ฒด ์ฌ ์ฅ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
"gatsby": "^ 2.19.45",
"react-custom-scrollbars": "^ 4.2.1",
๋๋ emailnikola์ ๊ฐ์ ๋ฌธ์ ๊ฐ์๋ค
์ ๊ฒฝ์ฐ์๋ gatsby-plugin-minify
์ด์ด ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผ ํ๋ก๋์
๋น๋๊ฐ ํ๋ก๋์
๋น๋์ ๋ชจ๋ ์คํ์ผ์ ๋ค์๋ก๋ํ๋๋กํ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด์ด์ฃผ์ธ์.