安装:sass-resources-loader
css
npm i sass-resources-loader --save-dev
修改vue-cli
的目录下build/utils.js
vue
scss
选项修改成以下选项:css3
return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders('less'), sass: generateLoaders('sass', { indentedSyntax: true }), scss: generateLoaders('sass').concat({ loader:'sass-resources-loader', options:{ resources:path.resolve(__dirname,'../src/assets/sass/base_core.scss') } }), stylus: generateLoaders('stylus'), styl: generateLoaders('stylus') }
我这里是指定了../src/assets/sass/base_core.scss
为个人根scss文件,其余的scss文件都引入到这个scss文件中。web
// ../src/assets/sass/base_core.scss @import "./_setting.scss"; @import "./_css3.scss"; @import "./_mixin.scss";
./_setting.scss
里放的是全部静态scss变量vue-cli
$fontsize-tiny: ptr(12px)!default; $fontsize-small: ptr(14px)!default;
./_mixin.scss
里放的是公用的混合器或者通用类npm
//截字 //SCSS 的”%” 与 “.” 功能相似,可是不会输出代码 %ellipsis-basic { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } //文字超出后以...显示 支持多行 @mixin fn-ellpisis($line) { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: $line; overflow: hidden; }
固然,怎么归类是我的习惯问题。sass
这样,我仅仅在build/utils.js
下引入一次,就能够在全部的vue组件中使用全局scss相关,而再也不须要每一个vue组件都引入一次了,固然,打包也是按需打包的,用到什么scss才会打包什么scss。less
固然,在vue-cli中怎么配置sass环境,网上不少教程,就没必要多说了。post
<template> <div class="demo"> demo </div> </template> <script> export default { name: 'demo' } </script> <style lang="scss"> //直接用就好,不用单独引用你的sass包了 #demo{ color:$fontsize-tiny; @extend %ellipsis-basic; @include fn-ellpisis(2); } </style>