小程序开发:mpvue使用sass/scss提升样式开发效率

安装

npm install -D node-sass sass-loader

指定css语言

<style lang='scss'>
</style>

指定sass编译时的引用路径

build/utils.js中指定了引用路径

var scssPath = resolve('./src/static/style')
...
generateLoaders('sass', {indentedSyntax: true, includePaths: [scssPath]})

好处是<style></style>里使用@import时就可以省略长长的相对路径,比如src/pages/me/settings/index.vue路径下

<style lang='scss'>
  // 指定前
  @import "../../../static/style/mixin"; 
  // 指定后
  @import "mixin";
</style>

自动化

即使不写长长的相对路径,也还觉得一遍遍重复地在每个.vue文件里@import很麻烦?
公共scss文件分拆或重构时,需要去每个.vue文件里维护引用?
sass-resources-loader可以解决这个问题

安装

npm install -D sass-resources-loader

配置

// 配置loader
var sassResourceLoader = {
    loader: 'sass-resources-loader',
    options: {
      resources: [
        path.resolve(__dirname, '../src/common/style/mixin.scss'),
        path.resolve(__dirname, '../src/common/style/var.scss')
      ]
    }
  }

然后把这个loader加在generateLoaders函数中

function generateLoaders (loader, loaderOptions) {
    var loaders = [cssLoader, px2rpxLoader, postcssLoader]
    if (loader) {
      loaders.push({
        loader: loader + '-loader',
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
      // 使用sass-loader时,添加sassResouceLoader
      if ('sass' === loader) {
        loaders.push(sassResourceLoader)
      }
    }

    // Extract CSS when that option is specified
    // (which is the case during production build)
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

这样就无需在.vue文件中@import了,sass-resources-loader会自动帮你管理引用。

开发工具的配合

使用Webstorm开发工具,不写@import就会有烦人的小黄线提示你找不到@include@extend这些函数?
小技巧解决逼死强迫症的问题:
右键文件夹,标为resource root即可

配置资源路径

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 Webpack 1.1 概念简介 1.1.1 WebPack是什么 1、一个打包工具 2、一个模块加载工具 3...
    Kevin_Junbaozi阅读 6,789评论 0 16
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 11,263评论 0 21
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,083评论 19 139
  • 学习记录,欢迎指出错误 数据类型与变量 数据类型 在Python中标准的数据类型有六种: Number(数字 ) ...
    zint阅读 305评论 0 0
  • 丽子 知己与爱情一样,都是可遇而不可求的。这与竭力的程度无关,却常常在我们始料不及的时候出现。 ...
    丽子a阅读 396评论 10 2