Next.js: normalize.css рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХрд╛?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рджрд┐рд╕ре░ 2016  ┬╖  27рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vercel/next.js

рдПрдХ рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рддрд░реАрдХреЗ рд╕реЗ normalize.css (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ NPM рд╕реЗ) рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЖрджрд░реНрд╢ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕реНрдерд┐рд░ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдЕрдиреБрд░реЛрдз рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЧреНрд▓реИрдорд░ рдореЗрдВ glamor/reset рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдЬреЛ рдореИрдВ рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдирд╣реАрдВ (рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЧреНрд▓реИрдорд░ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреИрд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдП)ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@jaydenseric рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ normalize.css CSS рдХрд╛ jQuery рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрднреА рднреА HTML рддрддреНрд╡реЛрдВ рдХреА рдЕрдкрдиреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдореЗрдВ рдХрд╛рдлреА рдЕрд╕рдВрдЧрдд рд╣реИрдВ, normalize.css рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓реАрдЧреЗрд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП normalize.css рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рднреА 27 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк next/head рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@nkzawa рдореИрдВрдиреЗ рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП next/head рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ css-loader рдХреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ node_modules рд╕реЗ CSS рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХреИрд╢ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╣реЗрдбрд░ рдЕрдиреБрд░реЛрдз рдкреЗрд▓реЛрдб рдХреЛ рдЙрдбрд╝рд╛ рджреЗрддрд╛ рд╣реИ?

рдЖрдк style рдХреЛ next/head $ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬреИрд╕реЗ:

<Head>
  <style>{`
    body {
      margin: 0;
    }
  `}</style>
</Head>

рдЖрдкрдХреЛ normalize.css рд╕реЗ .json рдпрд╛ рдПрдХ рдШрдЯрдХ рдХреЛ require рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм IMO рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдЪрдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреЗрд▓реЛрдб рдХреЛ рдмреНрд▓реЛрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

https://github.com/zeit/next.js/pull/222 рдЬрд╛рд░реА рд╣реЛрдиреЗ рдкрд░ рдЖрдк css-loader рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдпрд╣реА рдкрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддрд░реАрдХрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдЧрд▓реА рд╣рд┐рдЯ рд╕реЗ рдкрд╣рд▓реЗ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╡реЗрдмрдкреИрдХ рдпрд╛ рдЧрд▓реНрдк рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рдФрд░ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓рд╛ рд╕рд╛рдорд╛рдиреНрдп рдЪрдВрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЕрдм рд╕рд╛рдорд╛рди рдХреЛ рд╕рд┐рд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЗрд╣рддрд░ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

9 рджрд┐рд╕рдВрдмрд░ 2016 рдХреЛ 01:11 рдмрдЬреЗ, Naoyuki Kanezawa [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рдЖрдк рд╢реИрд▓реА рдХреЛ рдЕрдЧрд▓реЗ/рд╕рд┐рд░ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ:




рдЖрдкрдХреЛ normalize.css рдХреЛ .json рдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм IMO рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдЪрдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреЗрд▓реЛрдб рдХреЛ рдмреНрд▓реЛрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

#222 рдЬрд╛рд░реА рд╣реЛрдиреЗ рдкрд░ рдЖрдк css-loader рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рд╕реВрддреНрд░ рдХреЛ рд▓рд┐рдЦрд╛ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ рдЧреНрд▓реИрдорд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ normalize.css рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрджреНрдпрдкрд┐ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг v3.0.2
https://github.com/threepointone/glamour/blob/master/src/reset.js

рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛
https://github.com/threepointone/glamour/pull/154

рдмрд╕ import 'glamor/reset' рдЖрдпрд╛рдд рдХрд░рдирд╛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореЗрд░реЗ рдХрд╛рдВрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдкрдХреЛ 5.0 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд╡рд┐рд▓рдп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ :)

@FrancosLab рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ glamor/reset рдХреЗ рдкрд╛рд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛- рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЧреНрд▓реИрдорд░ рдХреЗ рд░реАрдбрдореЗ рдкрд░ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рддреЛ [email protected] рдХреЗ рд▓рд┐рдП рдЕрднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд┐рд╕реНрдордд рдХреЗ with-global-stylesheet рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЬреЛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЙрд╕рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдШрдВрдЯреЗ рдмрд┐рддрд╛рдП рд╣реИрдВред

рдХреНрдпреЛрдВрдХрд┐ normalize.css рдПрдХ рдкреИрдХреЗрдЬ рд╣реИ, рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ (рдиреЛрдб рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреБрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ package.main рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, emit-file-loader (рдФрд░ file-loader рднреА) рдЙрджрд╛рд╣рд░рдг рд░реЗрдкреЛ рд╕реЗ рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдбрд░ рдХреЛ рд╡рд┐рдХрд▓реНрдк name=dist/[path][name].[ext] рдкрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, path рд╣рдореЗрд╢рд╛ - рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдлрд╝рд╛рдЗрд▓ .next/dist/-/node_modules/normalize.css/normalize.css рдореЗрдВ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ .

рдЗрд╕реЗ рджреВрд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкреВрд░реНрдг normalize.css рдлрд╝рд╛рдЗрд▓ рдХреЛ static рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реИ рдпрд╛ рд╢рд╛рдпрдж рдкреВрд░реА рдЪреАрдЬрд╝ рдХреЛ style рдЯреИрдЧ рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рдХрд░рдирд╛ рд╣реИ (рдореИрдВ рд╕реНрдЯрд╛рдЗрд▓ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐)ред

рдореИрдВрдиреЗ webpack-copy-plugin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ static рдлрд╝реЛрд▓реНрдбрд░ .next рд╕реЗ рдирд╣реАрдВ рдкрд░реЛрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╣реА <root-folder>/static (рдЬрд╣рд╛рдВ pages рд░рд╣рддрд╛ рд╣реИ) рддреЛ рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдЕрдм рдЬрдмрдХрд┐ Next.js рдЧреНрд▓реИрдорд░ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╕рдВрдмрдВрдзрд┐рдд: https://github.com/zeit/styled-jsx/issues/83 , https://github.com/zeit/styled-jsx/pull/100 , https://github.com/zeit/ рдЕрдЧрд▓рд╛.рдЬреЗрдПрд╕/рдореБрджреНрджреЗ/544

with-global-stylesheet рдЙрджрд╛рд╣рд░рдг рдЕрднреА рдпрд╣рд╛рдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: #1327!

1327 рдЕрднреА рднреА import 'normalize.css' рдЬреИрд╕реА рд╕рд░рд▓ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЦреНрдп рдореБрджреНрджрд╛ рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдмрдкреИрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ, рдЖрдк рд╕рд░реНрд╡рд░ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдкрд░ рдЧреИрд░-рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@migueller рд╢рд╛рдпрдж v2.0 рдХреЗ рдмрд╛рдж рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рд╡реЗрдмрдкреИрдХ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ...: https://github.com/zeit/next.js/issues/1245

@sedubois , рдЗрд╕рдХрд╛ рдмреЗрд╕рдмреНрд░реА рд╕реЗ рдЗрдВрддрдЬрд╛рд░ рд╣реИ! рдореИрдВ

рдЖрдк рд╡рд╣рд╛рдВ рдЕрдкрдирд╛ рд╡реЛрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ

рджреЛрд╕реНрддреЛрдВ, рдореИрдВ normalize рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдареАрдХ рдЖрдпрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ sass-loader , рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ includePaths рдХреЗ рдмрд┐рдирд╛ рднреА рдЬреЛ рдЕрднреА рд╡рд┐рд▓рдп рд╣реБрдЖ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ рдХрд┐ normalize-scss ( normalize.css рдХрд╛ Sass рдкреЛрд░реНрдЯ) рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ рдкрд░ <strong i="10">@import</strong> '~normalize-scss'; рдЬреЛрдбрд╝реЗрдВ (рдХрд╕реНрдЯрдо _document , рд▓реЗрдЖрдЙрдЯ, рдпрд╛ рдкреЗрдЬ) рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ scss рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧреА рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ with-global-stylesheet рдХрд░рддрд╛ рд╣реИред

рдЕрдм рдпрджрд┐ рдЖрдк рдореВрд▓ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк babel-plugin-module-resolver рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрдкрдирд╛рдо рдХреЛ node_modules babel-plugin-module-resolver рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ styles рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдд рдХрд░реЗрдВ + <style dangerouslySetInnerHTML={{ __html: normalize }} /> ред

@orlin , рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд░реНрд╡рд░ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реЗрдмрдкреИрдХ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред

@migueloller , рдЗрд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрд╕реА рддрд░рд╣ scss рдХреЛ with-global-stylesteet рдЙрджрд╛рд╣рд░рдг рдореЗрдВ js рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред css рдФрд░ scss рджреЛрдиреЛрдВ рдХреЛ рд╡реЗрдмрдкреИрдХ рд▓реЛрдбрд░ рджреНрд╡рд╛рд░рд╛ next.config.js рдореЗрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЬреЗрдПрд╕ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА import normalize from '...' рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ normalize.css рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ babel-plugin-module-resolver рдЙрдкрдирд╛рдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдПрдХ ... рдкрде рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@рдСрд░реНрд▓рд┐рди ,

рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рд╣реИ, normalize.css рдЬреЛрдбрд╝рд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рд╛ рдЦреЗрд▓рд╛ рд╣реИред рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ!

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛, рдЬрд╣рд╛рдВ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдирд╛рдо dist/[path]index.js рдерд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдпрджрд┐ рдЖрдк package.json рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рдиреЛрдб рдХрд╛ require рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЕрдиреНрдп рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЖрдкрдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рд░рд╣рдирд╛ рдФрд░ node_modules рдирд╣реАрдВ) рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ normalize.css (рд╕рд╛рде рд╣реА рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдЕрдиреНрдп рдкреИрдХреЗрдЬ) рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдмрдкреИрдХ рдирд┐рдпрдо рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдПрдХ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛ рдЬреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬреИрд╕рд╛ рдХрд┐ # 1245 рдФрд░ https://github.com/zeit/styled-jsx/pull/100#issuecomment рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред -277133969

@rauchg , рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ node_modules рдореЗрдВ рдореМрдЬреВрдж рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛? рдореБрдЭреЗ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдпрд╛ with-global-stylesheet рдПрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред

@migueller рдЗрд╕реЗ рдЙрд╕реА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛

@migueller рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрдкрд░-рдХреНрд▓реАрди "рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕" рддрд░реАрдХрд╛ рдорд┐рд▓рд╛ред with-global-stylesheet рдкрд░ рдПрдХ рдкреАрдЖрд░ рдХрд░реЗрдВрдЧреЗ ... рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╣реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ред

рд░реАрд╕реЗрдЯ рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рд╣рд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ рд╢реИрд▓рд┐рдпрд╛рдБ, рд╡реИрд╕реЗ рднреА рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рд╣реИрдВред рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдкрдиреА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╕реАрдПрд╕рдПрд╕ рдХрд╛ jQuery рд╣реИред

@jaydenseric рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ normalize.css CSS рдХрд╛ jQuery рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрднреА рднреА HTML рддрддреНрд╡реЛрдВ рдХреА рдЕрдкрдиреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдореЗрдВ рдХрд╛рдлреА рдЕрд╕рдВрдЧрдд рд╣реИрдВ, normalize.css рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓реАрдЧреЗрд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП normalize.css рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: (https://github.com/zeit/next.js/#custom-document)

// ./pages/_document.js
import Document, { Head, Main, NextScript } from 'next/document'
import flush from 'styled-jsx/server'

export default class MyDocument extends Document {
  static getInitialProps({ renderPage }) {
    const { html, head, errorHtml, chunks } = renderPage()
    const styles = flush()
    return { html, head, errorHtml, chunks, styles }
  }

  render() {
    return (
      <html>
        <Head>
          <title>My page</title>
          <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.0/normalize.min.css" />
        </Head>
        <body className="custom_class">
          {this.props.customValue}
          <Main />
          <NextScript />
        </body>
      </html>
    )
  }
}

@vinzcelavi рдЖрдк рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдХреНрдпреЛрдВ рдлреНрд▓рд╢ рдХрд░рддреЗ рд╣реИрдВ?

@sospedra рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рд╢рд╛рдпрдж рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ: https://github.com/zeit/styled-jsx#styled -jsxserver

рдЖрдк рд╢рд╛рдпрдж рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЕрдиреБрд╕рд╛рд░ Document.getInitialProps рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ: https://github.com/zeit/next.js/#custom -document

Head рдХреЗ рдЕрдВрджрд░ рд╕реАрдбреАрдПрди рдпреВрдЖрд░рдПрд▓ рдХреЗ рд╕рд╛рде link рдЯреИрдЧ рд░рдЦрдирд╛ рдареАрдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

@ janoist1 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЖрдЧреЗ рд╕реЗ рдЦреБрдж рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдмрд╛рд╣рд░реА рд╕реАрдбреАрдПрди рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рдЪреАрдЬ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ рдпрджрд┐ next-css рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ (рд╢рд╛рдпрдж рдЖрдк CSS рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП _app рд╕реЗ CSS рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред

рд╣рдо рдкрд╣рд▓реЗ link рдХреЗ рдЕрдВрджрд░ Head рдХреЗ рд▓рд┐рдП normalize.css рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ <style type='text/css'>{globalStyles}</style> рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рдХрд╕реНрдЯрдо рд╡реИрд╢реНрд╡рд┐рдХ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ

import React from 'react'
import Document, { Head, Main, NextScript } from 'next/document'

const globalStyles = `
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
`

export default class MyDocument extends Document {
  render () {
    return (
      <html>
        <Head>
          <meta name='viewport' content='width=device-width, initial-scale=1' />
          <meta charSet='utf-8' />

          <link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css' />

          <style type='text/css'>{globalStyles}</style>
        </Head>

        <body>
          <Main />
          <NextScript />
        </body>
      </html>
    )
  }
}
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

renatorib picture renatorib  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

flybayer picture flybayer  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jesselee34 picture jesselee34  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

olifante picture olifante  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ