Next.js: [RFC] ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CSS

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 4 сСнт. 2019  Β·  60ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: vercel/next.js

Π¦Π΅Π»ΠΈ

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… эффСктов CSS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Bootstrap, Normalize.css, UX-provided ΠΈ Ρ‚. Π”.)
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ CSS Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
  • ИзмСнСния стиля горячСй ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Π±Π΅Π· обновлСния страницы ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ состояния)
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ раздСлСния ΠΊΠΎΠ΄Π° для критичСского извлСчСния CSS Π² производствС
  • ИспользованиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… соглашСний, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Create React App)
  • Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ styled-jsx , ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ

Π—Π°Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½

Π˜ΠΌΠΏΠΎΡ€Ρ‚ CSS Π² прилоТСния JavaScript - это ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, популярная срСди соврСмСнных сборщиков ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Webpack.

Однако ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ CSS слоТно: Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ JavaScript, вСсь CSS ΠΈΠΌΠ΅Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠ»ΠΎΡ…ΠΎ поддаСтся ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°Ρ†ΠΈΠΈ. ОсобСнно это касаСтся объСдинСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… страниц, Π³Π΄Π΅ стили Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π² Ρ„Π°ΠΉΠ»Π΅ CSS для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы, Π° порядок Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

По нашим измСрСниям, Π±ΠΎΠ»Π΅Π΅ 50% ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ объСдинСния Ρ„Π°ΠΉΠ»ΠΎΠ² .css Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· @zeit/next-css , @zeit/next-sass , @zeit/next-less ΠΈΠ»ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Π°Ρ настройка. Π­Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ подтвСрТдаСтся Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°ΠΌΠΈ с компаниями. Π£ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ всС свои стили Π·Π° счСт ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° CSS, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ для Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… стилСй, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ CSS-in-JS для стилизации ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π’ настоящСС врСмя Ρƒ нас Π΅ΡΡ‚ΡŒ эти Ρ‚Ρ€ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с упорядочСниСм CSS ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° этого Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ @zeit/next-css Π½Π΅ обСспСчиваСт соблюдСниС соглашСния для Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… стилСй. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ / Ρ„Π°ΠΉΠ» JavaScript Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ CSS, ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ввСсти Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° CSS. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° styled-jsx, Π³Π΄Π΅, Ссли Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° врСмя

Π­Ρ‚ΠΈ усилия Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Next.js Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ соврСмСнный CSS ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ соврСмСнный JavaScript ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π΄ΠΎ ES5.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹:

Π’ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ измСнСния CSS Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ автоматичСски, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ горячСй ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ JavaScript.

Π’ процСссС производства вСсь CSS Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° (-ΠΎΠ²) JavaScript ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ Π² Ρ„Π°ΠΉΠ»Ρ‹ .css .

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, этот .css Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΠΊΠΎΠ΄ (ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы загруТался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ CSS критичСского ΠΏΡƒΡ‚ΠΈ.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS

Next.js ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ pages/_app.js .

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ (ΠΈ нСдостаток Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Global CSS Π² любоС мСсто вашСго прилоТСния ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° ΠΊΠΎΠ΄ ΠΈΠ·-Π·Π° каскадного Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° CSS.

Π­Ρ‚ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS импортируСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ вСсти сСбя ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ с ΠΎΠ΄Π½ΠΎΠΉ страницы Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

/* styles.css */
.red-text {
  color: red;
}
// pages/_app.js
import '../styles.css'

export default () => <p className="red-text">Hello, with red text!</p>

CSS Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Next.js ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ чистыС CSS-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² любом мСстС вашСго прилоТСния.

CSS Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ соглашСнию ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° CSS .module.css Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ со спСцификациСй ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS .

ΠžΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ :global() CSS Modules Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π² сочСтании с ΠΈΠΌΠ΅Π½Π΅ΠΌ локального класса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ .foo :global(.bar) { ... } .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

/* components/button.module.css */
.btnLarge {
  padding: 2rem 1rem;
  font-size: 1.25rem;
}

.foo :global(.bar) {
  /* this is allowed as an escape hatch */
  /* (useful when controlling 3rd party libraries) */
}

:global(.evil) {
  /* this is not allowed */
}
/* components/button.js */
import { btnLarge } from './button.module.css'

// import '../styles.css'; // <-- this would be an error

export function Button({ large = false, children }) {
  return (
    <button
      className={
        large
          ? // Imported from `button.module.css`: a unique class name (string).
            btnLarge
          : ''
      }
    >
      {children}
    </button>
  )
}

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π§Ρ‚ΠΎ Π±Ρ‹ ΠΌΡ‹ Π½ΠΈ Π΄Π΅Π»Π°Π»ΠΈ здСсь, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС Π΅Ρ‰Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ PostCSS, ΠΊΠ°ΠΊ сСйчас, с @zeit/next-css ? Π‘Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±ΠΈΠ΄Π½ΠΎ, Ссли Π±Ρ‹ ΠΌΡ‹ потСряли ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для этого - CRA Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ это, ΠΈ ΠΈΠ·-Π·Π° этого Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ Tailwind CSS, ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ способом.

Π’ этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ я Π±Ρ‹Π» Π±Ρ‹ остороТСн с этими трСмя функциями:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Autoprefixer для автоматичСского добавлСния прСфиксов, зависящих ΠΎΡ‚ поставщика (Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Flexbox)
  • ΠŸΠΎΠ»ΠΈΡ„ΠΈΠ» ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ CSS-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Stage 3+ с ΠΈΡ… эквивалСнтами.
  • АвтоматичСски ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ извСстныС "Π³ΠΈΠ±ΠΊΠΈΠ΅ ошибки" для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

... ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС это дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PostCSS, ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ порядок ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² PostCSS находился ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π― Π±Ρ‹ посовСтовал, Ссли Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эти Ρ‚Ρ€ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ PostCSS ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, прСдоставив свой собствСнный Ρ„Π°ΠΉΠ» postcss.config.js . Им ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эти ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ссли Π±Ρ‹ ΠΎΠ½ΠΈ пошли ΠΏΠΎ этому ΠΏΡƒΡ‚ΠΈ, Π½ΠΎ, Π½Π° ΠΌΠΎΠΉ взгляд, Ρ‚Π°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ контроля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ.

TL; DR, поТалуйста, Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PostCSS, я Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CRA ΠΈΠ·-Π·Π° этого, ΠΈ ΠΌΠ½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ грустно, Ссли Π±Ρ‹ я большС Π½Π΅ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Next.

ВсС 60 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, ΠΊΠ°ΠΊ @zeit/next-sass ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS, .module.scss Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ? Или Ρ„Ρ€Π°Π·Π° «чистыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSSΒ» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ .module.css ?

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Sass для мСня - это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ @zeit/next-css/sass/less/stylus Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ этого RFC (встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°). ΠœΡ‹ всС Π΅Ρ‰Π΅ обсуТдаСм, Π² ΠΊΠ°ΠΊΠΎΠΉ стСпСни sass Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒΡŽ ядра ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ node-sass это Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ sass. Подобно Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ для TypeScript. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² качСствС зависимости, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ довольно большой ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ устанавливаСтся ΠΈΠ·-Π·Π° собствСнных привязок ΠΈ Ρ‚. Π”.

Π­Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π΅! Как ΠΈ сСгодня, мСня сбили с Ρ‚ΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° классов css!

Вопрос, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с TypeScript? Одна ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» css-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ модуля css Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠ»ΡˆΠ΅Π±Π½Ρ‹ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, .foo-bar станСт ΠΏΠΎΠ»Π΅ΠΌ с ΠΈΠΌΠ΅Π½Π΅ΠΌ fooBar ?), Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для TS. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Next Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ являСтся TS ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, я ΠΌΠΎΠ³Ρƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ большСго успСха Π² этом вопросС?

Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ «АвтоматичСски ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ извСстныС Π³ΠΈΠ±ΠΊΠΈΠ΅ ошибки для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΒ» Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ.

Π― боюсь, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌΠΈ сцСнариями, ΠΊΠΎΠ³Π΄Π° сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° npm, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй css, Π±ΡƒΠ΄ΡƒΡ‚ вСсти сСбя ΠΈΠ½Π°Ρ‡Π΅ Π² срСдах nextjs, Ρ‡Π΅ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ create-react-app).

@TheHolyWaffle, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ извСстныС ошибки flexbug, создаСт Π±ΠΎΠ»Π΅Π΅ прСдсказуСмоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ - ΠΈ это Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Create React.

@zenozen Богласно спСцификации ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS, ΠΎΠ½ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ для вас Π½ΠΈΡ‡Π΅Π³ΠΎ особСнного Π² camelcase. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Π½Π° классов с Ρ‚ΠΈΡ€Π΅ ( class-name ), Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ явно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ.

Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

import Everything from './file.module.css'

// later on

Everything['class-name']

Π§Ρ‚ΠΎ касаСтся TS, ΠΌΡ‹ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ довольно Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ TS для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этих Ρ„Π°ΠΉΠ»ΠΎΠ².

declare module '*.module.css' {
  const classes: { readonly [key: string]: string };
  export default classes;
}

declare module '*.module.scss' {
  const classes: { readonly [key: string]: string };
  export default classes;
}

declare module '*.module.sass' {
  const classes: { readonly [key: string]: string };
  export default classes;
}

Π§Ρ‚ΠΎ Π±Ρ‹ ΠΌΡ‹ Π½ΠΈ Π΄Π΅Π»Π°Π»ΠΈ здСсь, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС Π΅Ρ‰Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ PostCSS, ΠΊΠ°ΠΊ сСйчас, с @zeit/next-css ? Π‘Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±ΠΈΠ΄Π½ΠΎ, Ссли Π±Ρ‹ ΠΌΡ‹ потСряли ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для этого - CRA Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ это, ΠΈ ΠΈΠ·-Π·Π° этого Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ Tailwind CSS, ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ способом.

Π’ этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ я Π±Ρ‹Π» Π±Ρ‹ остороТСн с этими трСмя функциями:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Autoprefixer для автоматичСского добавлСния прСфиксов, зависящих ΠΎΡ‚ поставщика (Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Flexbox)
  • ΠŸΠΎΠ»ΠΈΡ„ΠΈΠ» ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ CSS-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Stage 3+ с ΠΈΡ… эквивалСнтами.
  • АвтоматичСски ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ извСстныС "Π³ΠΈΠ±ΠΊΠΈΠ΅ ошибки" для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

... ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС это дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PostCSS, ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ порядок ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² PostCSS находился ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π― Π±Ρ‹ посовСтовал, Ссли Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эти Ρ‚Ρ€ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ PostCSS ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, прСдоставив свой собствСнный Ρ„Π°ΠΉΠ» postcss.config.js . Им ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эти ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ссли Π±Ρ‹ ΠΎΠ½ΠΈ пошли ΠΏΠΎ этому ΠΏΡƒΡ‚ΠΈ, Π½ΠΎ, Π½Π° ΠΌΠΎΠΉ взгляд, Ρ‚Π°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ контроля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ.

TL; DR, поТалуйста, Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PostCSS, я Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CRA ΠΈΠ·-Π·Π° этого, ΠΈ ΠΌΠ½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ грустно, Ссли Π±Ρ‹ я большС Π½Π΅ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Next.

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ @adamwathan - Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ здСсь Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² postcss. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ postcss Ρ‡Π΅Ρ€Π΅Π· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, Π° Ρ‚Π°ΠΊΠΆΠ΅ postcss.config.js , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΎΠ±Ρ‰ΠΈΠ΅ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ css для всСго ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° css (Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для суффикса .module ), Π° для Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ суффикс .global .

ΠœΠΎΠ΄ΡƒΠ»ΠΈ CSS Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ сохранСниС спСцификации *.module.(css|scss) - это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° соотвСтствуСт create-react-app , позволяСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ тСкст ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΠ»ΠΎΡ…ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ… с Next.js

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ машинописного тСкста Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ модуля CSS, гСнСрируя Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ *.d.ts для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° *.(css|scss) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ typed-css-modules ΠΈ typed-scss-modules, Π½ΠΎ Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ этого ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ трСбуСтся Π°Π²Ρ‚ΠΎΠ·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ VS Code:
https://marketplace.visualstudio.com/items?itemName=clinyong.vscode-css-modules

@adamwathan, Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, ΠΌΡ‹

Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ!! Π•ΡΡ‚ΡŒ Π»ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊ для этого? Π­Ρ‚ΠΎ происходит Π² этом Π³ΠΎΠ΄Ρƒ?

@andreisoare, ΠΌΡ‹ собираСмся ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ этого RFC: https://github.com/zeit/next.js/pull/8710

ΠœΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС!

@adamwathan @Timer Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» postcss.config.js Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ с next-sass .

Π’Π°ΠΊ Ρ€Π°Π΄ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ ядра.

Π‘ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ отрисовка критичСского ΠΏΡƒΡ‚ΠΈ AMP Π² этом RFC?

для записи, Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ styled-jsx, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ позволяСт Π²Π°ΠΌ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ css, html ΠΈ js Π² ΠΎΠ΄Π½Ρƒ идСю, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Если Π²Ρ‹ Π΅Ρ‰Π΅ этого Π½Π΅ осознали (это ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ next.js, Π° Π½Π΅ для ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ…), это позволяСт Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ вСсь CSS UI Kit, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ bootstrap, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ 1 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΈ Ссли ΠΎΠ½ этого Π½Π΅ сдСлаСт Π½Π΅ соотвСтствуСт вашим потрСбностям, Π²Ρ‹ отбрасываСтС Π΅Π³ΠΎ, Π½Π΅ взяв Π½Π° сСбя брСмя этой внСшнСй зависимости CSS.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ эти знания, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ CSS часто Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈΠ»ΠΈ Π΄ΡƒΠΌΠ°ΡŽΡ‚ ΠΏΠΎΠ·ΠΆΠ΅, ΠΈ часто становятся проклятиСм для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Но ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ абстракции ΠΎΠ± этом довольно Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ.

ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Β«ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди» ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ свой CSS, Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это отличная идСя.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… сторон Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ - это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° инкапсулируСт для вас CSS, HTML ΠΈ JS. ΠΈ Ссли Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ (ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅) CSS, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ своСго Ρ€ΠΎΠ΄Π° ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ шаг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²Ρ‹Π³ΠΎΠ΄Π° ΠΎΡ‚ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ.

Для справки: CSS-in-CSS (ΠΈΠ»ΠΈ HTML) - Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивный транспортный ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ для стилСй, ΠΈ совмСстноС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ js ΠΈ стилСй Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΈΡ… совмСстноС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.
Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ CSS-in-JS послСднСго поколСния ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ CSS Π² CSS Π²ΠΎ врСмя сборки для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, поэтому ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ статичСским CSS являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Однако - ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Next Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ извлСчСния, ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π°Π·Π³Π»Π°ΡˆΠ°Π΅Ρ‚ΡΡ.

Для справки: smile :: ИспользованиС SASS, LESS с Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Bootstrap, ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚! Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ JS. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ являСтся использованиС Π‘Π­Πœ. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° ΠΏΡƒΡ‚ΠΈ.

@timer Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ

(Бвязано, https://github.com/zeit/next-plugins/issues/190)

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ, поэтому Π½Π΅Ρ‚. Волько ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS (ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²) Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ. πŸ‘

Π•ΡΡ‚ΡŒ Π»ΠΈ объяснСниС, ΠΊΠ°ΠΊ это влияСт Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ β„– 9392 ΠΈ β„– 9385? ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит Π·Π° кулисами. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ я ΠΌΠΎΠ³ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚. ΠœΡ‹ стрСмимся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React Π΄ΠΎ next.js Π² основном, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСимущСствами ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтов ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π½Π° сторонС сСрвСра.

Однако для нас ΠΎΡ‡Π΅Π½ΡŒ слоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS. ΠœΡ‹ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ для CSS, Π½ΠΎ это Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ # 9392 # 9385 ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Π•ΡΡ‚ΡŒ Π»ΠΈ ETA для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ CSS-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (Π΄Π°ΠΆΠ΅ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ)? Π•ΡΡ‚ΡŒ Π»ΠΈ способ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅?

Π—Π½Π°Ρ‡ΠΈΡ‚, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ прямо сСйчас, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ устранСна. Π― Π΄ΡƒΠΌΠ°ΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Π²

Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° Π³Π»ΡƒΠΏΡ‹ΠΉ вопрос: Ρ‡Ρ‚ΠΎ касаСтся глобального CSS, Ρ‡Π΅ΠΌ это отличаСтся / Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ просто Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ссылки Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ?

@otw, Ссли Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS, ΠΎΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ сборки с ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ вашСго ΠΊΠΎΠ΄Π°, поэтому ΠΎΠ½ минимизируСтся ΠΈ Ρ‚.Π΄., Π° Π·Π°Ρ‚Π΅ΠΌ становится Ρ‡Π°ΡΡ‚ΡŒΡŽ сборки ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° next.js

ΠžΡ‚ вас зависит, Ссли это прСимущСство. Π― полагаю, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй с Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄ΡƒΡ‚ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ CSS, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, загруТался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½.

Для контСкста Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовали NextJS Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ послСдних Π΄Π²ΡƒΡ… Π»Π΅Ρ‚ для создания ΠΏΠΎΡ‡Ρ‚ΠΈ 40 Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для стартапов Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии.

Π― Ρ…ΠΎΡ‡Ρƒ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ стилизуСм наши прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ потрСбности, Π±ΠΎΠ»Π΅Π²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ, прСдупрСТдСния ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… npms, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ·Π°Π±ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΌΠΈ измСнСниями.

ВСкущая рСализация

  • ΠœΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ «стартовый ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Β» прилоТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΆΠ΅ встроСна большая Ρ‡Π°ΡΡ‚ΡŒ Π½Π°ΡˆΠΈΡ… основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Он ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ Π² качСствС ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ содСрТит мноТСство Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΡ‚ простого использования Bootstrap.
  • ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Bootstrap ΠΈ Reactstrap Π² качСствС основы нашСй Π΄ΠΈΠ·Π°ΠΉΠ½-систСмы. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° связная систСма проСктирования, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ SASS с рСкомСндациями Bootstrap ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ систСмы проСктирования ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Π½Π°ΡˆΠΈΡ… собствСнных Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΡ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, миксинов, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Ρ‚. Π”. ВсС это рСализуСтся посрСдством ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° шаблонов Π² Ρ„Π°ΠΉΠ» sass. загруТаСтся глобально Π±Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ css Ρ‡Π΅Ρ€Π΅Π· стандартный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ next-sass NextJS. Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚: http://prntscr.com/qc8r0g.
  • Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΡƒΡ‚Π΅ΠΌ стилизации Π² основном с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слуТСбных классов, прСдоставляСмых нашСй Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ настройкой Bootstrap, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Для этих ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ SASS со styled-jsx . ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ SASS, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ наши Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ миксины ΠΈΠ· Π½Π°ΡˆΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ систСмы Π΄ΠΈΠ·Π°ΠΉΠ½Π°. ΠœΡ‹ сдСлали ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«jsx-helperΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡ… Π² наш styled-jsx. Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚: http://prntscr.com/qc8xbr.
  • Π’ случаС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΡΠ°Ρ‚ΡŒΡΡ Ρ‚Π΅Π³ΠΎΠ² html, body ΠΈ root div, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, ΠΈΠ»ΠΈ npms, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΡ€Ρ‚Π°Π»Ρ‹ ΠΈ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² CSS для касания Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, нСдоступной ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ стиля -jsx. Π­Ρ‚ΠΎ послСднСС срСдство, Π½ΠΎ ΠΎΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для нашСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ здСсь: http://prntscr.com/qc8yo6

Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅ нСдостатки / ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

  • ΠœΡ‹ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ SASS (ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с IDE ΠΈ отсутствиС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ с Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ языками) с нашими ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования внСшнСго Ρ„Π°ΠΉΠ»Π° sass с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ styled-jsx Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·-Π·Π° извСстной ошибки компиляции с ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ npm stylis . На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ каТСтся Π½Π΅ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ, поэтому я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΠΈ Π² ΠΎΠ΄Π½Ρƒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ инструмСнтов, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡƒΡŽ NextJS.
  • ИзмСнСния Π² Π½Π°ΡˆΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… SCSS, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² SASS styled-jsx, Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. На самом Π΄Π΅Π»Π΅ сущСствуСт ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ кСш модуля npm, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ webpack Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΈΠ· Π½Π°ΡˆΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Bootstrap. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ npm ci для пСрСстроСния всСй ΠΏΠ°ΠΏΠΊΠΈ node_modules , очистка кСша Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΊΠΎΠΌΠ°Π½Π΄Π° консоли ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ очистки кСша - всС это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ здСсь Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ кСш npm. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°ΠΌ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ горячая ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS / SASS, примСняСмыС ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, любая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° SASS, выполняСмая ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° измСнСниями ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², упомянутой Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅.
  • Нам ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для раздСлСния нашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ PostCSS Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… мСстах, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ SASS ΠΈ styled-jsx строятся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

ОпасСния ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Нас слСгка бСспокоит идСя Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ глобальной ΠΎΠΏΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS / SASS, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² зависимости ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠ°ΡΠ°Ρ‚ΡŒΡΡ Ρ‚Π΅Π³ΠΎΠ² html, body ΠΈ root div, Π° Ρ‚Π°ΠΊΠΆΠ΅ случаСв сгСнСрированного HTML. это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΠ·-Π·Π° размСщСния Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚Π°Π»Ρ‹ ΠΈ Ρ‚. Π΄. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ‡Π°ΡΡ‚ΡŒ этого с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ глобального SASS ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ рСструктуризации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ Π½Π΅ зависСли ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS.

ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ PostCSS ΠΈ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅, это Π±Ρ‹Π» Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚, Π½ΠΎ я полагаю, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ стоит ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ. НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΌΠ½Π΅, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы, ΠΈ ΠΌΡ‹ с Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ NextJS ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°ΡŽΡ‚ дальшС (ΠΊΠ°Π»Π°ΠΌΠ±ΡƒΡ€)!

@Soundvessel ,

Нас слСгка бСспокоит идСя Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ глобального ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² CSS / SASS-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² зависимости ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠ°ΡΠ°Ρ‚ΡŒΡΡ Ρ‚Π΅Π³ΠΎΠ² html, body ΠΈ root div, Π° Ρ‚Π°ΠΊΠΆΠ΅ случаСв сгСнСрированного HTML. это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

Если я вас ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понял, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ смоТСтС Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этого, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ :global Π² модулях CSS.

@ Daniellt1

Если я вас ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понял, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ смоТСтС Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этого, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ :global Π² модулях CSS.

Π‘ΠΌ. Π˜Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π² сочСтании с ΠΈΠΌΠ΅Π½Π΅ΠΌ локального класса

Π’ случаС нашСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠ°ΠΊΠ΅Ρ‚Π° ΠΌΡ‹ Π½Π°Ρ†Π΅Π»Π΅Π½Ρ‹ Π½Π° <html> , <body> ΠΈ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ div Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ локального класса.

Π’ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΎΠΏΡ†ΠΈΠΈ :global Ρ‡Ρ‚ΠΎ для мСня Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла, учитывая большоС количСство API-интСрфСйсов npms ΠΈ CMS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ нСльзя Ρ‚Ρ€ΠΎΠ³Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ css с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, @Soundvessel - это ΠΌΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я записал для своСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊ Π½Π΅ΠΌΡƒ доступ?), И ΠΎΠ½ΠΎ Π½Π΅ прСдставляСт Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ взгляды ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ nextjs ΠΈ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π΅ создания. Π½Π° Ρ€Π°Π½Π½ΠΈΡ… стадиях экспСримСнта. Π‘Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ RFC ΠΊΠ°Π½ΠΎΠ½ΠΎΠΌ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ 😁

Π― Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ вас Π·Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CSS / SASS вмСсто Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠ³ΠΎ JS Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ CSS, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ синтаксиса, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ свойства camelCased ΠΈ Ρ‚. Π”. МногиС ΠΈΠ· нас приходят ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½ Ρ„ΠΎΠ½, имСя ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½ΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ нСпосрСдствСнно с HTML / CSS, ΠΈ это позволяСт Π½Π°ΠΌ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π² ΠΊΠΎΠ΄Π΅, слишком Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π² Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌ Π½Π° экранС.

ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ…ΠΎΡ‡Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Ссли я Π½Π΅ пропустил упомянутоС Π²Ρ‹ΡˆΠ΅, Ρ‡Ρ‚ΠΎ автоматичСскоС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ / Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Sass - это ΠΊΡ€ΡƒΡ‚ΠΎ, Π½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Sass API Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π³Π΄Π΅-Ρ‚ΠΎ прСдставлСны: [email protected] установил Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ шаблон, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ sass ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ; ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ приняты Π±ΠΎΠ»Π΅Π΅ 1: 1 ...

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ настраиваСмоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS.
ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ массив для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΡ€ΠΎΠΌΠ΅ .module.css ?
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° .module.css ΠΈ Π΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ import "Component.module.css" ΠΊΠΎΠ³Π΄Π° Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ каТСтся Π½Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄ΡƒΡ‚Ρ‹ΠΌ.

Π’ ΠΌΠΎΠ΅ΠΌ случаС я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ: .m.css , скаТСм Component.m.css ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ import "Component.m.css"

Если ΠΊΠΎΠΌΠ°Π½Π΄Π° Next.js Π½Π΅ сообщит ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСхничСских трудностях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π― Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ для имСнования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это каТСтся Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ, Π½ΠΎ я сомнСваюсь Π² _need_ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ .module.css Ссли это Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

Next.js ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ страницы / _app.js.

Π‘Π½Π°Ρ‡Π°Π»Π° я Π΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ .module.css потрСбуСтся для сборки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ слСдуСт Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS, Π° Ρ‡Ρ‚ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ, Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π½Π΅ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² любой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ / страницу Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ _app.js ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС ΠΈ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ сборку, Ρ‚ΠΎΠ³Π΄Π° соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… Π½Π΅ потрСбуСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ _app.js Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎ своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ CSS.

НСуТСли это навязываСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, Π° Π½Π΅ ΠΏΠΎ нСобходимости?

Π’Ρ‹Π±ΠΎΡ€ соглашСния module.css вступаСт Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ΅ с ΠΊΠΎΠ½Π²Π΅Π½Ρ‚ΠΎΠΌ, ΡƒΠΆΠ΅ установлСнным https://github.com/css-modules/css-modules
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ здСсь:
https://create-react-app.dev/docs/adding-a-css-modules-stylesheet/
ΠΈ Ρ‚ΡƒΡ‚:
https://www.gatsbyjs.org/docs/css-modules/

Π”Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, настройка Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Но, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ .module.css Π² постоянном Ρ„Π°ΠΉΠ»Π΅, Π° Π½Π΅ ТСстко Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ исправлСния ΠΎΠ±Π΅Π·ΡŒΡΠ½Ρ‹

@bySabi

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этой ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ create-react-app Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Β«ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй», Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ связали с another-stylesheet.css Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½. Π’ этом случаС .module.css ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, какая Ρ‚Π°Π±Π»ΠΈΡ†Π° стилСй ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ инструмСнтами сборки.

БпСцификация CSS-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ устанавливаСт соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ….

Π― знаю, Ρ‡Ρ‚ΠΎ CSS-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… соглашСний ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π° ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

Π― Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ .module.css - это соглашСния, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Next.js, ΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Β«ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒΒ» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π΄Π°ΠΆΠ΅ Ссли это дСлаСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΡŒ послС установки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ monkey patching

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ .module.css - ΠΏΠ΅Ρ€Π²ΠΎΠ΅ соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… |

Π’Ρ‹Π±ΠΎΡ€ соглашСния module.css ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ ΠΊΠΎΠ½Π²Π΅Π½Ρ‚Ρƒ, ΡƒΠΆΠ΅ установлСнному css-modules / css-modules
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ здСсь:
create-react-app.dev/docs/adding-a-css-modules-stylesheet
ΠΈ Ρ‚ΡƒΡ‚:
gatsbyjs.org/docs/css-modules

Π”Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, настройка Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Но, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ .module.css Π² постоянном Ρ„Π°ΠΉΠ»Π΅, Π° Π½Π΅ ТСстко Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ исправлСния ΠΎΠ±Π΅Π·ΡŒΡΠ½Ρ‹

Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚Π΅ своСй Ρ‚ΠΎΡ‡ΠΊΠ΅ зрСния, .module.css ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ create-react-app ΠΈ gatsby для ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΡƒΡΡ‚ΠΎΡΠ²ΡˆΠ°ΡΡΡ модСль.

ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ являСтся установлСнным шаблоном, ΠΈ Π½Π΅Ρ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ это Π² Next.js.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ .module.css - ΠΏΠ΅Ρ€Π²ΠΎΠ΅ соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… | Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π½Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Next.Js. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΏΡ€Π°Π²ΡŒΡ‚Π΅ мСня, Ссли я ошибаюсь.

Next.js устанавливаСт соглашСния ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • pages ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌΠΈ
  • pages/api - ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ API
  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° .js .tsx .tsx

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @timneutkens

Π¨Π°Π±Π»ΠΎΠ½ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ CSS Modules опрСдСляСт, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ CSS Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JS, имя рассматриваСмого CSS являСтся ΠΌΠ°Ρ€Π³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ. Π’ связи с этим Next.js Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ шаблон Π² Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
CSS Modules ΠΊΠ°ΠΊ Π² Gatsby ΠΈ CRA, ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Next Ρ€Π°Π½ΡŒΡˆΠ΅: https://github.com/zeit/next-plugins/tree/master/packages/next-css

Π― Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽ сомнСнию ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ соглашСниС, .module.css , Π΄Π°ΠΆΠ΅ зная, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ CRA ΠΈ Gatsby с CSS Modules . ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ подходящСС имя слоТно ΠΈ Π½Π΅ всС всСгда счастливы.

Π₯отя я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ соглашСниС .m.css Π»ΡƒΡ‡ΡˆΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅ (большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ) ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎ (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ), я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ приняли это Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ соглашСний Π² Ρ†Π΅Π»ΠΎΠΌ ΠΈ .module.css Π² частности Π² постоянном Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ достаточно ΠΏΠΎΠΌΠΎΡ‡ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ….

Π’ любом случаС, ΠΏΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ с модулями CSS. Π’Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π»ΠΈ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, это казалось Β«ΠΏΠΎΡ‡Ρ‚ΠΈΒ» Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ.

Если я ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свои Π΄Π²Π° Ρ†Π΅Π½Ρ‚Π° Π½Π° соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…: Ρƒ нас Π΅ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .pcss ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ PostCSS для компиляции, ΠΈ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти CSS ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ . Как Π±Ρ‹ Π²Ρ‹ ΠΎΡ‚Π½Π΅ΡΠ»ΠΈΡΡŒ ΠΊ этому Π΄Π΅Π»Ρƒ? Π’ настоящСС врСмя ΠΌΡ‹ Π²Π·Π»Π°ΠΌΡ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ исправляСм тСстовоС рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ², Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сСбС ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, это выглядит грязно.

Π― полагаю, Ρ‡Ρ‚ΠΎ .module.css ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ postCSS Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ сСйчас это Π΄Π΅Π»Π°Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ .css.

Π― знаю, Ρ‡Ρ‚ΠΎ происходит, Π΄ΡƒΠΌΠ°ΡŽ, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ΅Π½ отпуск.

ΠŸΡ€ΠΈ просмотрС PR: https://github.com/zeit/next.js/pull/9686 ΠΌΠ½Π΅ показалось, Ρ‡Ρ‚ΠΎ я Β«ΡƒΠ²ΠΈΠ΄Π΅Π»Β», Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS Π±Ρ‹Π»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ областями дСйствия, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

Π― искрСннС Π΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» этот ΠΊΠΎΠ΄:

index.module.css

.redText {
  color: net;
}
import './index.module.css'

export default function Home () {
  return (
    <div id = "verify-red" className = "redText">
      This text should be red.
    </div>
  )
}

Π―Π²Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ с Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. На самом Π΄Π΅Π»Π΅ настоящий ΠΊΠΎΠ΄ Ρ‚Π°ΠΊΠΎΠ².

import {redText} from './index.module.css'

export default function Home () {
  return (
    <div id = "verify-red" className = {redText}>
      This text should be red.
    </div>
  )
}

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS, ΠΊΠ°ΠΊ Π² CRA ΠΈΠ»ΠΈ Gatsby. ΠžΡ‚ΡΡŽΠ΄Π° ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π°, ΠΌΠΎΠ΅ Π·Π°ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ.

ΠŸΡ€ΠΎΡˆΡƒ прощСния Π·Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ.

:-(

ΠŸΡ€ΠΈ использовании ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сторонниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS.
Но ... Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сторонниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ .module.css Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ.
А Π΄Ρ€ΡƒΠ³ΠΈΠ΅ структуры (CRA 、 Gatsby) достигли консСнсуса.

Π”ΠΎ сих ΠΏΠΎΡ€ Ρƒ мСня Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ.
Π˜Ρ‚Π°ΠΊ, я надСюсь ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ .module.css .

Если Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ CSS-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, это Π»ΡƒΡ‡ΡˆΠ΅.

@bySabi
Π₯отя .m.css ΠΊΠΎΡ€ΠΎΡ‡Π΅, Π½ΠΎ Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅.
Π­Ρ‚ΠΎ min.css ΠΈΠ»ΠΈ module.css ?

@ xyy94813 ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, вСсь ΠΈΠΌΠΏΠΎΡ€Ρ‚ css - это ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ„Π°ΠΉΠ»Ρ‹ с .global.scss Π±ΡƒΠ΄ΡƒΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ

@felixmosh
Но это Π½Π΅Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½ΠΎ ΠΊ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ соглашСниС являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, спСцифичныС для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ доступны, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² css-loader , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ захотят ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ "ограничСнная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ" выводятся ΠΈΠΌΠ΅Π½Π° классов. МоТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для прСдоставлСния рСгулярного выраТСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ CSS Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Β«ΠΌΠΎΠ΄ΡƒΠ»ΠΈΒ».

ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ захотят ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ выводятся ΠΈΠΌΠ΅Π½Π° классов с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠ³ΠΎ, Π·Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ это Π½ΡƒΠΆΠ½ΠΎ? Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ Π½ΠΈ ΠΎ Ρ‡Π΅ΠΌ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π·Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ это Π½ΡƒΠΆΠ½ΠΎ? Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ Π½ΠΈ ΠΎ Ρ‡Π΅ΠΌ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ.

@timneutkens Π§Ρ‚ΠΎ ΠΆ, я ΠΌΠΎΠ³ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ шаблон имСнования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² основном соотвСтствуСт ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ имСнования ΠΌΠΎΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… классов, с Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строкой с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ Π² ΠΊΠΎΠ½Ρ†Π΅.
Помимо этого, я Π΄ΡƒΠΌΠ°Π» ΠΎ сцСнариях очистки, раздСлСния ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ послС сборки, Π³Π΄Π΅ я ΠΌΠΎΠ³ Π±Ρ‹ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ внСсти ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ Π² Π±Π΅Π»Ρ‹ΠΉ список, Π½ΠΎ я Π΅Ρ‰Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» с этим

Π― Π΄ΡƒΠΌΠ°ΡŽ, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ самоувСрСнный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π·Π° вас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ настройку ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅.

НСкоторыС ΠΈΠ· этих Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Π½ΠΎ со всСм, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ настраиваСмым, Π²Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ, которая создаСт большС ΠΊΠΎΠ΄Π° для тСстирования, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ докумСнтирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Ρ…Π΅Ρˆ-шаблона Π²Ρ‹Π²ΠΎΠ΄Π° с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Π΄ΠΎΠΉΠ΄Π΅Ρ‚Π΅ Π΄ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π³Π΄Π΅ Π²Π°ΠΌ _ Π½ΡƒΠΆΠ½ΠΎ_ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, вСроятно, Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅, Π³Π΄Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнный Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ React ΠΌΠ½Π΅ всСгда Π±Ρ‹Π»ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ стилСй области видимости ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Ρ‡Π΅Ρ€Π΅Π· className. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π΄Π°ΠΉΡ‚Π΅ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ элСмСнту Π² вашСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя класса, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ имя вашСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ свой ΡΡ‚ΠΈΠ»ΡŒ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ этому, ΠΏΡ€ΠΈ использовании SCSS:

.Navbar {
  .logo { ... }
  .nav-item { ... }
}

Π― ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π²ΠΈΠΆΡƒ прСимущСства css-modules , Π½ΠΎ мСня Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ бСспокоит, Ρ‡Ρ‚ΠΎ, Ссли большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Next.js станСт ΠΌΠ΅Π½Π΅Π΅ Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΌ для Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ компромисс, Ссли Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ людСй ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π·Π°ΠΊΠ°Π·Π° css, Π½ΠΎ ΠΌΠ½Π΅ интСрСсно, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ хотя Π±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ исполнСниС css-modules ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ next.config.js . Или, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄Π°ΠΆΠ΅ провСсти ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²ΠΎ врСмя сборки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС стили ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ класса, хотя Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, насколько это Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠΎ тСхничСски.

МСня Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ бСспокоит, Ρ‡Ρ‚ΠΎ, Ссли большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Next.js станСт ΠΌΠ΅Π½Π΅Π΅ Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΌ для Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Если я Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½Π΅ понял, я Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ CSS являСтся ΡΠΊΡΠΊΠ»ΡŽΠ·ΠΈΠ²Π½Ρ‹ΠΌ, скорСС Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CSS, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, ΠΈΠΌΠ΅Π΅Ρ‚ шаблон имСнования *.module.css ΠΈΠ»ΠΈ *.module.scss Π² этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ

@ lunelson-bl

Π­Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ CRA ΠΈΠ»ΠΈ Gatsby Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ шаблон имСнования. Next Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΠ» Π±Ρ‹ Π½Π΅ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ нСпосрСдствСнно Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JS.

Из RFC:

/* components/button.js */
import { btnLarge } from './button.module.css'

// import '../styles.css'; // <-- this would be an error

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ классы, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ стилСй Π² Π²Π°ΡˆΡƒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ стилСй, которая импортируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² _app.js (Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ вмСстС с вашими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ прямо Π² эту Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ стилСй.

Π― Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ next.js. ПослС прочтСния этого выпуска я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ запутался. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ if the next.js ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ build-in-css , поэтому Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΏΠ»Π°Π³ΠΈΠ½ @ next-css, Π½ΠΎ ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ "ModuleParseError".
Если я добавляю ΠΏΠ»Π°Π³ΠΈΠ½ @ next-css для добавлСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° CSS, ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ css Π±Π΅Π· @ next-css, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ привСсти ΠΏΡ€ΠΈΠΌΠ΅Ρ€?
Бпасибо всСм.

Π― Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ next.js. ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² этот выпуск, я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ запутался. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ next.js ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ build-css , поэтому ΠΏΠ»Π°Π³ΠΈΠ½ @ next-css Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, Π½ΠΎ ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π½Π΅ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«ModuleParseErrorΒ».
Если я добавлю Π΅Π³ΠΎ Π² ΠΏΠ»Π°Π³ΠΈΠ½ @ next-css, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° CSS, ΠΎΠ½ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ css-build Π±Π΅Π· @ next-css, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ привСсти ΠΏΡ€ΠΈΠΌΠ΅Ρ€?
спасибо @ALL .

Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² ваш next.config.js ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

module.exports = {
  experimental: {
    css: true
  }
}

@erkanunluturk, спасибо, всС Π² порядкС, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, это Π²Π°ΠΆΠ½ΠΎ?
А ΠΊΠ°ΠΊ ΠΎΠ½ совмСстим с antd? Π― знаю, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½ с ΠΌΡƒΡ€Π°Π²ΡŒΡΠΌΠΈ - это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

@Timer, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ привСсти ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ant-design [RFC] css? Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ.

Π£ мСня всС Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Router.push ("/"), ΠΊΠΎΠ³Π΄Π° я Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ссылкС. Π£ ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅? ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ ΠΌΠ½Π΅ большоС спасибо

: warning: ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π²Π΅Ρ‚ΠΊΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈ срСдство отслСТивания ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π­Ρ‚ΠΎ RFC, ΠΈ ΠΎΠ½ΠΈ всС Π΅Ρ‰Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ.

ПослСдний Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: https://github.com/zeit/next.js/issues/8626#issuecomment -531415968. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π΅Π΅ Ρ‡Π΅Ρ€Π΅Π· https://github.com/zeit/next. .js / issues / 8626 # issuecomment -568736218

Π― ΡƒΠΏΡƒΡΠΊΠ°ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Как ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ? @Timer ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ этот RFC с Π²Π΅Ρ…Π°ΠΌΠΈ, Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ? Π§Ρ‚ΠΎ сдСлано ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² RFC?

ΠŸΠΎΠ½ΡΡ‚ΠΈΡ Π½Π΅ имСю, ΠΊΠ°ΠΊ Π½Π΅ ΡΠ±ΠΈΡ‚ΡŒΡΡ с ΠΏΡƒΡ‚ΠΈ: confused:

@StarpTech этот RFC ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½; Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS ΠΈ CSS Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² соотвСтствии с описаниСм RFC.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π»Π°Π³Π°!

Π― Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽ эту Π²Π΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ дальнСйшСС распространСниС ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ выпуск ΠΈ сообщитС Π½Π°ΠΌ! ΠœΡ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ здСсь, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ (ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°).

ΠŸΡ€ΠΈΠ·Π΅ΠΌΠ»ΠΈΠ»ΡΡ Π² 9.2: https://nextjs.org/blog/next-9-2

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ