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樣式指南
- sass變數詳解——你不知道的sass。變數
- 總結Sass 變數變數
- vue專案中如何全域性引入scss/sass檔案VueCSS
- angular中定義全域性變數及全域性變數的使用Angular變數
- 細談sass和less中的變數及其作用域變數
- oracle中的全域性環境變數配置Oracle變數
- 在vue中使用sass的配置的方法Vue
- 在VS Code使用Sass最新配置流程
- webstrom配置sass與lessWeb
- 【Sass/SCSS】我花4小時整理了的Sass的函式CSS函式
- sass的顏色函式函式
- Android中全域性變數與區域性變數的使用總結Android變數
- 在vue專案中 如何定義全域性變數 全域性函式Vue變數函式
- Sass使用總結
- SQL Server中的全域性變數SQLServer變數
- mac配置全域性環境變數Mac變數
- npm 全域性環境變數配置NPM變數
- javascript全域性變數的使用注意JavaScript變數
- Sass中的mixin,function,extendFunction
- 靜態全域性變數和全域性變數變數
- 在vue2.0中使用sassVue
- vue-cli 如何配置sassVue
- Python中的全域性變數和區域性變數Python變數
- android使用全域性變數Android變數
- javascript中的作用域(全域性變數和區域性變數)JavaScript變數
- 全域性變數變數
- Python的區域性變數和全域性變數使用解惑Python變數
- [sass 基礎] .sass 和 .scss 區別CSS
- mpvue使用sass的解決方案Vue
- mpvue 使用sass的解決方案Vue
- QT 全域性變數使用方法QT變數
- node 全域性物件和全域性變數物件變數
- 如何在vue中使用sassVue
- 全域性變數與區域性變數變數