토이 프로젝트에 scss
를 적용했는데 전역 스타일 적용 후 빌드 할 때 에러가 났다.
먼저 나는 vue2 (vue@2.6.14)
버전을 이용중.
여기서 전역 스타일 설정이란,
매번 스타일 영역에서 scss
파일을 import
하지 않고 사용하는 설정을 말한다.
scss 설치
npm install --save-dev node-sass sass-loader
위와 같이 설치하고, 아래와 같이 전역 설정을 해주자.
vue.config.js
module.exports = {
...
css: {
loaderOptions: {
sass: {
data: `
@import "@/assets/scss/_variables.scss"
`
}
}
}
}
그리고 빌드.
ValidationError: Invalid options object.
ERROR Failed to compile with 1 error
error in ./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=scss
Syntax Error: ValidationError: Invalid options object. Sass Loader has been initialized using an options object that does not match the API schema.
- options has an unknown property 'data'. These properties are valid:
object { implementation?, sassOptions?, additionalData?, sourceMap?, webpackImporter? }
찾아보니 sass loader
의 최신버전에서는 data
속성 대신 additionalData
를 사용한다고 함.
다시 적용해서 빌드해보자.
vue.config.js
module.exports = {
...
css: {
loaderOptions: {
scss: {
additionalData: `
@import "@/assets/scss/_variables.scss"
`
}
}
}
}
또 에러남
SassError: expected ";".
in ./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=scss
Syntax Error: SassError: expected ";".
╷
2 │ @import "@/assets/scss/_variables.scss"
│ ^
╵
src/App.vue 2:50 root stylesheet
다행이게도 세미콜론;
누락 에러였다. import
뒤에 추가해주자.
빌드 성공
module.exports = {
...
css: {
loaderOptions: {
scss: {
additionalData: `
@import "@/assets/scss/_variables.scss";
`
}
}
}
}
에러는 마주했을 때 겁먹지 않는 게 제일 중요한 것 같다.
728x90
'Frontend > vuejs & reactjs' 카테고리의 다른 글
React 기초 그리고 입문2 (1) | 2024.10.15 |
---|---|
React 기초 그리고 입문1 (1) | 2024.10.14 |