vue,一路走来(17)--vue使用scss,并且全局引入公共scss样式
最近朋友问如何在vue项目中使用scss样式,想起之前项目是直接在main.js直接import css
文件的,然而main.js不可以直接import scss
文件。
import ‘./assets/css.css‘
src/assets/scss.scss
$border-color:#c58f5d; .box{ width:100px; height: 100px; border:1px solid #f40; }
第一步:安装依赖
cnpm install node-sass --save-dev cnpm install sass-loader --save-dev cnpm install style-loader --save-dev cnpm install sass-resources-loader --save-dev
第二步:配置build/utils.js
scss: generateLoaders(‘sass‘) 改成 scss: generateLoaders(‘sass‘).concat( { loader: ‘sass-resources-loader‘, options: { resources: path.resolve(__dirname, ‘../src/assets/scss.scss‘) } } )
发现项目报错:Module build failed: TypeError: this.getResolve is not a function
sass-loader的版本过高导致的编译错误,当前最高版本是8.x,需要退回到7.3.1
运行:
npm uninstall sass-loader(卸载当前版本) npm install sass7.3.1 --save-dev
最后在vue组件中的style标签中添加lang="scss"
,就ok了。这样我们就实现了全局引入scss。
<style lang="scss"> .box2{width:100px;height:100px;border:1px solid $border-color;} </style>
在webpack.base.conf.js中的module.rules添加如下配置,可以实现引入其余的scss文件
{ test: /\.scss$/, loaders: ["style", "css", "sass"] },
<style lang="scss"> @import ‘../../assets/other.scss‘; .box2{width:100px;height:100px;border:1px solid $border-color;} </style>
相关推荐
前端 2020-08-03
maiktom 2020-05-11
StylusGalaxy 2020-04-29
前端 2020-04-29
骷髅狗 2020-04-24
jiangfulai 2020-04-18
jiangfulai 2020-04-11
jiangfulai 2020-03-05
taoqidejingling 2020-03-05
ZylCN 2020-03-03
前端 2020-02-19
不知道写什么 2020-01-16
xxuncle 2019-12-27
zhanghao 2019-12-27
wghou 2019-12-27
王军强 2019-11-17
tianzyc 2019-11-08