vue2中使用sass並配置全域性的sass樣式變數
在vue中使用樣式檔案sass,如果每個.vue檔案都引入該樣式,build出來檔案後,勢必會造成樣式的重複,冗餘,如果在main.js中全域性引入一個scss檔案,在其中定義變數在其他元件或者頁面中引用報變數未定義錯誤,其他的樣式可以正常顯示,顯然是編譯的問題。那麼,全域性設定並載入樣式就顯得很有必要了!
首先,npm安裝好
"sass-loader": "^6.0.7",
"sass-resources-loader": "^1.3.3",
在build/webpack.base.conf.js中,在module的rules裡新增
{
test: /\.scss$/,
loaders: ["style", "css", "sass"]
}
然後在build/utils.js檔案中加入如下程式碼:
需要注意的是:我的全域性樣式是放在src/common/sass/index.scss中的
function resolveResouce(name) {
return path.resolve(__dirname, '../src/common/sass/' + name);
}
function generateSassResourceLoader() {
var loaders = [
cssLoader,
'postcss-loader',
'sass-loader',
{
loader: 'sass-resources-loader',
options: {
//這是用到的sass檔案,多個檔案時用陣列的形式傳入,這是帶有變數和mixin的scss檔案
resources: [resolveResouce('variable.scss'), resolveResouce('mixin.scss')] 注意這是我全域性樣式的位置,個人不同,需做調整
}
}
];
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
最後,將該頁面下方的return部分,改成如下模樣
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
//sass: generateLoaders('sass', { indentedSyntax: true }),
//scss: generateLoaders('sass'),
sass: generateSassResourceLoader(),
scss: generateLoaders('sass')
.concat(
{
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, '../src/common/sass/index.scss') //注意這是我全域性樣式的位置,個人不同,需做調整
}
}
),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
參考:https://blog.csdn.net/qq_27868533/article/details/79651659
https://segmentfault.com/a/1190000013220058?utm_source=tag-newest
相關文章
- vue-cli 配置 sass 全域性變數Vue變數
- nuxt3_在nuxt3中建立並使用全域性sass樣式檔案UX
- webpack+vue+sass專案中,sass提取全域性引用WebVue
- 總結Sass 變數變數
- vue專案中如何全域性引入scss/sass檔案VueCSS
- 在vue中使用sass的配置的方法Vue
- 在VS Code使用Sass最新配置流程
- 【Sass/SCSS】我花4小時整理了的Sass的函式CSS函式
- sass的顏色函式函式
- mac配置全域性環境變數Mac變數
- Python中的全域性變數和區域性變數Python變數
- 使用sass的方式有哪些?
- javascript全域性變數的使用注意JavaScript變數
- 在vue2.0中使用sassVue
- less 全域性變數使用 引用變數
- mpvue使用sass的解決方案Vue
- mpvue 使用sass的解決方案Vue
- 全域性變數變數
- javascript中的作用域(全域性變數和區域性變數)JavaScript變數
- QT 全域性變數使用方法QT變數
- vue中sass與SCSS的區別VueCSS
- 全域性變數與區域性變數變數
- 區域性變數和全域性變數變數
- 全域性 DOM 變數變數
- sass簡介
- sass安裝
- sass學習
- 全域性DOM變數的坑變數
- 使用 Nginx 編譯 Sass 和 ScssNginx編譯CSS
- 為什麼要使用sass/less?
- 使用 SASS Mixin 編寫 clean code
- golang變數作用域問題-避免使用全域性變數Golang變數
- Java區域性變數與全域性變數Java變數
- java 全域性變數和區域性變數Java變數
- jmeter全域性變數和區域性變數JMeter變數
- 【c】全域性變數與區域性變數變數
- Sass 的入門安裝和基本使用
- Vue中使用CSS前處理器 stylus以及配置全域性變數的方法VueCSS變數