Vue CLI
でグローバルで使えるCSS
を設定する
環境
- @vue/cli 4.0.4
- sass-loader 8.0.0
簡潔に
グローバルで
というのはどの.vue
ファイルの<style></style>
からでもという意味。
package.json
のvue
キーに以下を設定する。今回はSCSS
を使用しているので、このようになる。
{
"...": "..."
"vue": {
"...": "...",
"css": {
"loaderOptions": {
"scss": {
"prependData": "$test-color: #F00;"
}
}
}
},
"...": "..."
}
vue.config.js
に記述でもいい。公式はそれで書いてあった。
Working with CSS | Vue CLI
本当は、prependData
に.scss
ファイルでも置いておく。次のような感じ。
{
"...": "..."
"vue": {
"...": "...",
"css": {
"loaderOptions": {
"scss": {
"prependData": "@import \"~@/variables.scss\";"
}
}
}
},
"...": "..."
}
利点
このようにすることで、.vue
ファイルの<style></style>
の先頭にわざわざインポート文を書く必要がなくなる。
1カ所に集まるので保守性がいい気がする。
しかし、json
だと、1行にまとめるしかないので、複数をインポートするときはvue.config.js
を使ったほうがいいだろう。こうなる:
module.exports = {
somekey: "...",
css: {
loaderOptions: {
scss: {
prependData: `@import "~@/variables.scss"; \
@import "~@/animations.scss";`
}
}
}
}
バッククォートも使えるし、バックスラッシュも使える。vue.config.js
で分離しておくのが吉だと思う。