
β οΈ As of Dart Sass 1.80.0, the @import rule is deprecated and will be removed from the language in Dart Sass 3.0.0. Prefer the @use rule instead.
SCSSμ @importλ Dart Sass 1.80.0 λ²μ λΆν° μ¬μ©μ΄ μ€λ¨λμμΌλ©°, Dart Sass 3.0.0μμλ μμ ν μ κ±°λ μμ μ
λλ€. μ΄μ λ°λΌ @importλ₯Ό @useλ‘ λ³κ²½νλ κ²μ΄ κΆμ₯λ©λλ€. @useμ μ₯μ κ³Ό μ¬μ©λ², κ·Έλ¦¬κ³ κΈ°μ‘΄ νλ‘μ νΈλ₯Ό μ΄λ»κ² λ§μ΄κ·Έλ μ΄μ
ν μ μλμ§ μμΈν μ΄ν΄λ³΄κ² μ΅λλ€.
@useλ SCSS νμΌ μ΅μλ¨μ μμΉν΄μΌ νλ©°, λ€λ₯Έ κ·μΉλ³΄λ€ λ¨Όμ μμ±λμ΄μΌ ν©λλ€.
@import '/src/mixin.scss';
@use '/src/btn.scss';
// Error: @use rules must be written before any other rules.
μ μμμ²λΌ @useκ° λ€λ₯Έ κ·μΉ μ΄νμ μμ±λλ©΄ μ€λ₯κ° λ°μν©λλ€.
@importμ @useμ μ£Όμ μ°¨μ΄μ μ 곡μ λ¬Έμμμ νμΈν μ μμ΅λλ€
@useλ λ€μμ€νμ΄μ€λ₯Ό ν΅ν΄ λ€λ₯Έ νμΌμμ μ μλ λ³μ, λ―Ήμ€μΈ λ±μ λͺ
μμ μΌλ‘ μ°Έμ‘°ν΄μΌ ν©λλ€.// @import μμ: μ€λ³΅ λ‘λ
@import 'variables';
@import 'variables'; // κ°μ νμΌμ΄ λ λ² λ‘λλ¨
// @use μμ: μ€λ³΅ λ‘λ λ°©μ§
@use 'variables';
@use 'variables'; // ν λ²λ§ λ‘λλ¨
SCSS ꡬ쑰λ₯Ό μ 리νμ¬ @useλ₯Ό ν¨μ¨μ μΌλ‘ νμ©ν μ μλλ‘ ν΄λ ꡬ쑰λ₯Ό κ°νΈν΄λ³΄κ² μ΅λλ€.
ꡬ쑰λ kliemannμ ν¬μ€ν
μ μ°Έκ³ νμ΅λλ€.
scss/
βββ abstracts/
β βββ _functions.scss
β βββ _mixins.scss
β βββ _variables.scss
βββ base/
β βββ _reset.scss
β βββ _common.scss
βββ components/
β βββ _input.scss
β βββ _badge.scss
β βββ _button.scss
βββ layout/
β βββ _layout.scss
β βββ modal.scss
β βββ header.scss
β βββ footer.scss
βββ pages/
β βββ login.scss
β βββ user.scss
βββ style.scss
νΉμ μ»΄ν¬λνΈ νΉμ νμ΄μ§μμλ§ μ°μ΄λ header.scssμ κ°μ νμΌμ μ μΈν κ³΅ν΅ μ€νμΌ νμΌμ style.scssμ import νμ΅λλ€.
// style.scss
@import 'abstracts/mixin', 'abstracts/variables';
@import 'base/reset', 'base/common';
@import 'components/btn', 'components/input', 'components/badge';
@import 'layout/layout';
κ·ΈλΌ κΈ°μ‘΄μ @importλ‘ λΆλ¬μ¨ κ³΅ν΅ μ€νμΌ νμΌμ @useλ‘ λ³κ²½ν΄λ΄
λλ€.
// style.scss
@use '@css/abstracts/mixin';
@use '@css/abstracts/variables';
@use '@css/base/reset';
@use '@css/base/common';
@use '@css/components/input';
@use '@css/components/badge';
@use '@css/components/button';
@use '@css/layout/layout';
μ΄λ κ² κΈΈμ΄μ§ μ΄μ λ!
@useλ ν λ²μ νλμ νμΌλ§ κ°μ Έμ€λ κ·μΉμ μ μ©νκΈ° λλ¬Έμ
λλ€.
Each @use rule can only have one URL.
@useμ @forwardλ₯Ό νμ©νκΈ° μν΄ κ° ν΄λμ _index.scss νμΌμ μΆκ°ν©λλ€.
scss/
βββ abstracts/
β βββ _index.scss
β βββ _functions.scss
β βββ _mixins.scss
β βββ _variables.scss
βββ base/
β βββ _index.scss
β βββ _reset.scss
β βββ _common.scss
βββ components/
β βββ _index.scss
β βββ _input.scss
β βββ _badge.scss
β βββ _button.scss
βββ layout/
β βββ _layout.scss
β βββ modal.scss
β βββ header.scss
β βββ footer.scss
βββ pages/
β βββ login.scss
β βββ user.scss
βββ style.scss
νμΌμ ν λ²μ λ¬Άμ΄μ λΆλ¬μ€κΈ° μν΄, κ° ν΄λμ _index.scssνμΌμ μΆκ°νκ³ @forwardλ‘ νμν νμΌμ λ΄λ³΄λ
λλ€.
// abstracts/_index.scss
@forward 'variables';
@forward 'mixins';
@forward 'functions';
νμΌλͺ
μ _index.scssλ‘ μ§μ νλ©΄, ν΄λλͺ
μ νμΌλͺ
μΌλ‘ μ¬μ© κ°λ₯ν©λλ€. μ΄μ style.scssνμΌμ μ΄λ κ² μ€μΌ μ μμ΅λλ€.
// style.scss
@use '@css/abstracts';
@use '@css/base';
@use '@css/components';
@use '@css/layout/layout'; // layout ν΄λμλ 곡ν΅μΌλ‘ importν νμΌμ΄ layout.scss νλλΌμ λ°λ‘ index νμΌ μμ±νμ§ μμ
@useλ₯Ό μ¬μ©ν λλ λ€μμ€νμ΄μ€λ₯Ό νμ©ν΄ λͺ
μμ μΌλ‘ μ°Έμ‘°ν΄μΌ ν©λλ€.
// _variables.scss
$c-white: #ffffff;
$c-primary: #002b5c;
// _footer.scss
@use '@css/abstracts'; // λ€μμ€νμ΄μ€ μ¬μ©
------
<λ€μμ€νμ΄μ€>.[λ³μ]λ‘ μμ±
------
.footer {
color: abstracts.$c-white;
background-color: abstracts.$c-primary;
}
// λ€μμ€νμ΄μ€ λ³μΉ μ¬μ©
@use '@css/abstracts' as abs;
.footer {
color: abs.$c-white;
background-color: abs.$c-primary;
}
// λ€μμ€νμ΄μ€ μλ΅
@use '@css/abstracts' as *;
.footer {
color: $c-white;
background-color: $c-primary;
}
μμ μμμ κ°μ΄ 곡ν΅μ μΌλ‘ μ¬μ© λ λ³μλ μΌμΌν λ€μμ€νμ΄μ€λ₯Ό λͺ μνλκ² λ³΄λ€ μ μμ μΌλ‘ μ¬μ©νλκ²μ΄ ν©λ¦¬μ μΌ μ μμ΅λλ€. (μ΄μ ν¬μ€ν )
// vite.config.js
export default defineConfig({
css: {
preprocessorOptions: {
scss: {
additionalData: `
@use '@css/abstracts' as *;
`,
},
},
},
});
additionalData μ΅μ μ μ¬μ©ν΄ abstracts νμΌμ μ μμΌλ‘ λΆλ¬μ€λ©΄, λ€μμ€νμ΄μ€λ₯Ό μλ΅νκ³ λ SCSS λ³μ λ° λ―Ήμ€μΈμ μ¬μ©ν μ μμ΅λλ€.
κ·Έλ¬λ λ무 λ§μ νμΌμ as *λ₯Ό μ°λ κ²μ λͺ¨λνμ μ₯μ μ μ½νμν¬ μ μμΌλ νμν κ³³μλ§ μ μ€ν μ¬μ©νλ κ² μ’μ΅λλ€.