css λͺ¨λκ³Ό ν¨κ» tailwindcssλ₯Ό μ¬μ©νκ³ μλλ° νμ΄μ§κ° μ²μλ‘λ λ λ λͺ¨λ μ€νμΌμ΄λ‘λλμ§ μμμ μμμ΅λλ€. λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μλμ§ νμ νκΈ° μν΄ tailwindcss μμ λ₯Ό μ€ννκ³ css λͺ¨λμμ μ€νμΌμ μΆκ°νμΌλ©° prod μ©μΌλ‘ λΉλ λ κ²½μ°μλ λ°μν©λλ€.
https://github.com/zeit/next.js/tree/canary/examples/with-tailwindcss μμ μμ μ€ν
μ€νμΌμ΄μλ index.module.css
νμΌ μΆκ°
index.js
νμ΄μ§μ CSS λͺ¨λμμ μ€νμΌμ μΆκ°ν©λλ€.
css λͺ¨λμ μ¬μ©νμ§ μμΌλ©΄ λͺ¨λ μ€νμΌμ΄ κΉλ°μμμ΄ μ²μμ μ λλ‘λ‘λλ©λλ€. CSS λͺ¨λμ μ¬μ©νμ¬ λμΌν λμμ΄ μμλ©λλ€.
λλ μ΄κ²μ΄ CSS λͺ¨λμ μλ μ½λ λΆν κ³Ό κ΄λ ¨μ΄ μλ€κ³ μκ°ν©λλ€ π€
μλ§λ https://github.com/zeit/next.js/issues/10268 κ³Ό κ΄λ ¨μ΄
κ΅¬μ± μμμ μΌλ° CSS λͺ¨λμ μ¬μ©νμΌλ©° λͺ ms νμ μ€νμΌμ μ μ©νμ΅λλ€.
κ΅¬μ± μμμ μΌλ° CSS λͺ¨λμ μ¬μ©νμΌλ©° λͺ ms νμ μ€νμΌμ μ μ©νμ΅λλ€.
https://stackoverflow.com/a/42969608/943337 μ λ°λ₯΄λ©΄ λ°©κΈ λΉ μ€ν¬λ¦½νΈ νκ·Έλ₯Ό μΆκ°νκ³ μ²« λ²μ§Έλ‘λμ λνλλ μ¬μ΄λ λ° λ¬Έμ κ° μ΄μ ν΄κ²°λμμ΅λλ€.
https://github.com/vercel/next-plugins/issues/455#issuecomment -489452379
import Document, { Html, Head, Main, NextScript } from 'next/document';
import { GA_TRACKING_ID } from '../utils/anayltics';
class MyDocument extends Document {
static async getInitialProps(ctx) {
const initialProps = await Document.getInitialProps(ctx);
return { ...initialProps };
}
render() {
return (
<Html lang="de">
<Head>
</Head>
<body>
<Main />
<NextScript />
{/* Empty script tag as chrome bug fix, see https://stackoverflow.com/a/42969608/943337 */}
<script> </script>
</body>
</Html>
);
}
}
export default MyDocument;
κ΅¬μ± μμμ μΌλ° CSS λͺ¨λμ μ¬μ©νμΌλ©° λͺ ms νμ μ€νμΌμ μ μ©νμ΅λλ€.
https://stackoverflow.com/a/42969608/943337 μ λ°λ₯΄λ©΄ λ°©κΈ λΉ μ€ν¬λ¦½νΈ νκ·Έλ₯Ό μΆκ°νκ³ μ²« λ²μ§Έλ‘λμ λνλλ μ¬μ΄λ λ° λ¬Έμ κ° μ΄μ ν΄κ²°λμμ΅λλ€.
import Document, { Html, Head, Main, NextScript } from 'next/document'; import { GA_TRACKING_ID } from '../utils/anayltics'; class MyDocument extends Document { static async getInitialProps(ctx) { const initialProps = await Document.getInitialProps(ctx); return { ...initialProps }; } render() { return ( <Html lang="de"> <Head> </Head> <body> <Main /> <NextScript /> {/* Empty script tag as chrome bug fix, see https://stackoverflow.com/a/42969608/943337 */} <script> </script> </body> </Html> ); } } export default MyDocument;
κ°μ¬ν©λλ€ @ Adrianjs42 μ¬μ΄λ λ°κ° ν¬λ‘¬μμ λ©μ·μ΅λλ€.
λν κ΄λ ¨
https://github.com/vercel/next.js/issues/13058
μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μμλ ν΄κ²° λ°©λ²μ΄ μμ΅λλ€.
μ¬μ©μ μ§μ " _document.js
"μ (λ₯Ό) λ§λ€κ³ Html κ΅¬μ± μμμ " no-fouc
"ν΄λμ€λ₯Ό μΆκ°ν©λλ€.
μ¬μ©μ μ§μ " _app.js
"λ₯Ό λ§λ€κ³ " componentDidMount
"μ λ€μ μ½λλ₯Ό μΆκ°ν©λλ€.
const removeFouc = (foucElement) => {
foucElement.className = foucElement.className.replace('no-fouc', 'fouc')
}
removeFouc(document.documentElement)
κΈλ‘λ² μ€νμΌμ λ€μ μ€νμΌμ μΆκ°νμμμ€.
.no-fouc {
visibility: hidden;
opacity: 0;
}
.fouc {
visibility: visible;
opacity: 1;
}
μ΄κ²μ next@^9.4.5-canary.15
μμ μμ λμ΄μΌν©λλ€! μ
κ·Έλ μ΄λνμ¬ μλ €μ£Όμμμ€.
@Timer , λλ next@^9.4.5-canary.18
. μ΄μ CSS κΉλ°μμ΄ κ°λ° λͺ¨λμμ λνλμ§ μμ§λ§ νλ‘λμ
λ²μ μμλ λμΌνκ² μ μ§λ©λλ€. νλ‘λμ
λ²μ μλ μ¬μ ν λ²κ·Έκ° μμ΅λλ€.
material-ui + css λͺ¨λμ μ¬μ©νκ³ μμ΅λλ€.
μ΄ λ¬Έμ μ μ§λ©΄ ν μ± λ²μ μ λ€μκ³Ό κ°μ΅λλ€. https://cluster-11-lwj6nmcgy.vercel.app/ .
@ Prottoy2938 μ¬κΈ°λ λ§μ°¬κ°μ§ μ λλ€. μ΄ λ¬Έμ μ λν μ견μ λ¨κ²Όμ΅λλ€. https://github.com/vercel/next.js/issues/13058#issuecomment -654165987
@Timer , λλ
next@^9.4.5-canary.18
. μ΄μ CSS κΉλ°μμ΄ κ°λ° λͺ¨λμμ λνλμ§ μμ§λ§ νλ‘λμ λ²μ μμλ λμΌνκ² μ μ§λ©λλ€. νλ‘λμ λ²μ μλ μ¬μ ν λ²κ·Έκ° μμ΅λλ€.material-ui + css λͺ¨λμ μ¬μ©νκ³ μμ΅λλ€.
μ΄ λ¬Έμ μ μ§λ©΄ ν μ±μ λ²μ μ cluster-11-lwj6nmcgy.vercel.app μ λλ€.
κ·νμ μ¬λ‘λ CSS λͺ¨λ / tailwindμ κ΄λ ¨μ΄ μμΌλ©° material-uiμ μ¬μ λ λλ§ κ΅¬νμ μμ΄ λ²λ¦¬λ κ²κ³Ό κ΄λ ¨μ΄ μμ΅λλ€ .https : //github.com/vercel/next.js/issues/7322#issuecomment -653858948
@casperle , μ κ²½μ°μλ μλ² μΈ‘ λ λλ§ μνκ³ μμκΈ° λλ¬Έμ λ¬Έμ κ° λ°μνμ΅λλ€. material-ui μμμ΄
v9.4.5-canary.28μ μ¬μ©νλ©΄ devμμ κΉλ°μ΄μ§ μκ³ νλ‘λμ μμ κΉλ°μ λλ€.
κ°μ₯ μ μ©ν λκΈ
μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μμλ ν΄κ²° λ°©λ²μ΄ μμ΅λλ€.
μ¬μ©μ μ§μ "
_document.js
"μ (λ₯Ό) λ§λ€κ³ Html κ΅¬μ± μμμ "no-fouc
"ν΄λμ€λ₯Ό μΆκ°ν©λλ€.μ¬μ©μ μ§μ "
_app.js
"λ₯Ό λ§λ€κ³ "componentDidMount
"μ λ€μ μ½λλ₯Ό μΆκ°ν©λλ€.κΈλ‘λ² μ€νμΌμ λ€μ μ€νμΌμ μΆκ°νμμμ€.