Vue进阶(幺柒柒):Vue应用Sass、Scss、Less和Stylus
Vue
项目中使用预处理器,可以有效减少css
代码量, 推荐使用Sass
、Scss
、Less
预处理器。可以在创建项目的时候选择预处理器 (Sass/Less/Stylus
)。
如果当时没有选择,内置的 webpack
仍然会被预配置为可以完成所有的处理,也可以手动安装相应的 webpack loader
:
# Sass
npm install -D sass-loader node-sass
# Less
npm install -D less-loader less
# Stylus
npm install -D stylus-loader stylus
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
然后就可以导入相应的文件类型,或在 .vue
文件中这样来使用:
<style lang="scss"> $color: red;
</style>
- 1
- 2
- 3
下面主要讲解一下vue
中使用less
或者sass
的方法,以less
为例(style.less
)
主要是两种
1.对于写在vue
文件中的less
:
所有vue
文件的<style lang="less"></style>
,会被vue-loader
处理编译到一个css
文件中,最终自动通过link
标签写入index.html
(在vue-loader.conf.js
中配置)
<style scoped lang="less">
.notFoundPage { background-color: #0a8acd; color: #fff; position: relative; h1 { font-weight: 500; }
}
</style>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
<link href="/static/css/app.21d3ff57a1596ef90908ba816fbb9496.css" rel="stylesheet">
- 1
2.对于外部less
文件:
一是在main.js
中import style.less
。
此时webpack
会把style.less
和各个vue
文件的less
部分一起编译到同一个css
文件,并在index.html
的link
中自动引入。
二是在webpack
的入口文件entry
中加上style.less
,编译完的出口文件会被自动注入到index.html
文件中。
entry: {
app: './src/main.js',
style: './src/style/style.less'
},
- 1
- 2
- 3
- 4
<script type="text/javascript" src="/static/js/style.c67fefaf3f60c5ca074a.js"></script>
- 1
注:
在vue2.x
的webpack.base.conf.js
:
{ test: /\.vue$/, loader: 'vue-loader', options: vueLoaderConfig
},
- 1
- 2
- 3
- 4
- 5
这段是针对.vue
文件的处理规则,其中vueLoaderConfig
是vue-cli
自己定义的加载器,专门处理css
样式
vueLoaderConfig
引用的utils.js
:
return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders('less'), sass: generateLoaders('sass', { indentedSyntax: true }), scss: generateLoaders('sass'), stylus: generateLoaders('stylus'), styl: generateLoaders('stylus')
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
所以不需要再在rules
里写.css
.less
的处理规则了。
注
如碰到下面错误
Module build failed: TypeError: this.getResolve is not a function
at Object.loader (F:\code\myGit\vue\node_modules\sass-loader\dist\index.js:52:26)
- 1
- 2
因sass-loader
版本过高,webpack
编译失败,解决方法:
修改sass-loader
版本(^8.0.0 => ^7.3.1
)
npm install sass-loader@7.3.1 --save
- 1
拓展阅读
文章来源: shq5785.blog.csdn.net,作者:No Silver Bullet,版权归原作者所有,如需转载,请联系作者。
原文链接:shq5785.blog.csdn.net/article/details/114239396
- 点赞
- 收藏
- 关注作者
评论(0)