CRACO(Create React App Configuration Override) + Scoped CSS 프로젝트 기준으로 설명합니다.

Dart Sass

자세한 정보는 LibSass is Deprecated 내용을 확인해 주세요.

package.json

- "node-sass": "^5.0.0",
+ "sass": "^1.57.1",

craco.config.js

sass-loader 옵션에서 implementation node-sass 기본값을 sass로 변경합니다. 자세한 정보는 Use Dart Sass 내용을 확인해 주세요.

style: {
    ...
    sass: {
      loaderOptions: (sassLoaderOptions) => ({
        ...sassLoaderOptions,
+       implementation: require('sass'),
      }),
    },
  },

Deep 결합자 변경

Dart Sass의 경우 기존 /deep/ 결합자의 구문을 분석할 수 없어 컴파일 가능한 결합자로 수정해야 합니다. *.scoped.scss 파일 내 Deep 결합자를 다음과 같이 변경합니다.

- /deep/ .element {
+ ::v-deep .element {
}

stylelint.config.js

Deep 결합자를 변경한 후 Stylelint에서 알 수 없는 의사 요소(pseudo-element)로 간주하여 오류가 발생하지 않도록 다음과 같이 설정합니다.

module.exports = {
  ...
+  rules: {
+    'selector-pseudo-element-no-unknown': [
+      true,
+      {
+        ignorePseudoElements: ['v-deep'],
+      },
+    ],
+  },
};
이전 글
#developer
SSH 접속 시 비밀번호 자동 입력하기
다음 글
#typescript
객체 타입 키 이름에 접두사를 붙이는 Utility Type 만들기
어라운드어스

Coding everything around us

이 블로그는 Gatsby로 만들었습니다.

백은주 Sara
Frontend Developer @wadiz