使用gulp和scss构建样式库

栏目: Node.js · 发布时间: 7年前

内容简介:为了更好地复用样式,以及出于练习gulp、scss和学习mocha的目的,我在尝试使用gulp、scss构建一个用于pc端的样式库,使用mocha进行浏览器端的测试。为了方便起见,脚本没有使用纯javascript编写,而是选择了jquery。目前,基本的框架已经搭好,正在完善样式中。样式库使用前缀主要区分各自的作用,它们包括:

目的

为了更好地复用样式,以及出于练习gulp、scss和学习mocha的目的,我在尝试使用gulp、scss构建一个用于pc端的样式库,使用mocha进行浏览器端的测试。为了方便起见,脚本没有使用纯javascript编写,而是选择了jquery。目前,基本的框架已经搭好,正在完善样式中。

目录结构

  • lib --> 源代码库

    • scss --> scss代码库

      • mixins --> 共用mixins
      • components --> 组件
      • layouts --> 布局
      • text --> 文字和文本
      • utilities --> 实用的scss
      • state --> 状态
      • variables --> 变量
    • js --> 组件使用的js
  • vendor --> 第三方资源(js和css)
  • dist --> 打包后的文件(js和css)
  • examples --> 例子(ejs)
  • test --> 单元测试

css命名方式

样式库使用 前缀+主体+表现 的形式命名,比如 .c-btn-color--primary 。前端的部分使用单横杆连接,状态使用双横杆形式。命名有些丑陋,这是参考命名空间和BEM后的一种尝试。

前缀主要区分各自的作用,它们包括:

  • c ---> 组件类
  • u ---> 实用类
  • l ---> 布局类
  • is ---> 状态类(显示、隐藏等)
  • t ---> 文字或排版类
  • js ---> js钩子(表示使用js)

其它对于项目的详情,请 点击这里

遇到的问题

由于第一次使用gulp,不可避免地遇到了一些问题,记录如下:

gulp4的使用

gulp的中文文档是gulp3的,安装gulp3的方法使用,会发现gulp没有找到任务的情况。在gulp4,创建一个任务应该是:

function task() {
    // 需要返回stream、promise或者其他类型(详见gulp4文档) 
    return gulp.src(...).pipe(...);
}
// 导出default任务
exports.default = task;

在多个任务的情况,可以使用 seriesparallel ,来分别指定顺序执行和并行,而且可以相互嵌套。下面是一个例子:

// 假设各个task已经定义。
exports.default = series(
    task1,
    parallel(task2, task3)
);

这样,导出的default任务就是先执行task1,然后task2和task3同时执行。

gulp-order的使用

我在项目中使用了 gulp-concat 用于拼接js文件,这时,遇到的问题是怎么确定文件的顺序,有的文件有顺序要求。这是一个例子:

function task() {
    return gulp.src("js/*.js")
        .pipe(order([
            "js/component.js",
            "!js/index.js",
            "js/index.js"
        ], {base: "./"}))
        .pipe(concat("main.js"))
        .pipe(dest("dist"));
}

上面的任务表示先合并component.js然后合并非index.js的文件,最后合并index.js,至于base用于设置基本路径,不使用base可以会发现文件没有合并。

最后

由于本人能力有限,如有错误,欢迎指出;如果有什么建议,请不吝赐教。


以上所述就是小编给大家介绍的《使用gulp和scss构建样式库》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

区块链与人工智能:数字经济新时代

区块链与人工智能:数字经济新时代

高航、俞学劢、王毛路 / 电子工业出版社 / 2018-7-23 / 80

《区块链与人工智能》是畅销书《区块链与新经济:数字货币2.0时代》全新修订升级版。本书是市场上为数不多的系统阐述区块链、人工智能技术与产业的入门级系统教程。从比特币到各类数字货币(代币),从基础原理到应用探讨,全景式呈现区块链与人工智能的发展脉络,既有历史的厚重感也有科技的未来感。本书的另一个亮点是系统整理了区块链创业地图,是一本关于区块链创业、应用、媒体的学习指南,以太坊创始人Vitalik专门......一起来看看 《区块链与人工智能:数字经济新时代》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具