资讯专栏INFORMATION COLUMN

slime pack生成函数详细说明及使用栗子

0xE7A38A / 769人阅读

摘要:是上的一个前端编译项目,自己在上搜下通过生成的生产和开发环境所需的文件,生产环境会自动带压缩及带,对于不熟悉的同学,可能是个好的学习资料,可以看看里面的源码及布局,以便于开始自己在公司的项目下面是函数的详细说明默认类型说明静态文件生成函数

SLIME PACK是github上的一个前端编译项目,自己在github上搜下sp-build

通过slime.build生成js、css的生产和开发环境所需的文件,生产环境会自动带压缩及带hash,对于不熟悉gulp的同学,可能是个好的学习资料,可以看看里面的源码及布局,以便于开始自己在公司的项目

下面是slime.build函数的详细说明

默认类型说明
//style: ["css", "scss", "sass", "less", "stylus", "styl"]  
//templet: ["hbs", "swig", "htm", "html", "php", "jsp"]  
//script: ["js", "jsx", "coffee", "cjsx"]  


/*
* 静态文件生成函数
* {parm1} {string} // 文件名,完整的文件名称,如绝对路径 d:xxxyyy.js
*         {string} // 配置名,config中默认的名称,如 config -> pages  
*         {string} // 目录名,如存在的目录 d:xxx  
*         {array}  // 组合数组,数组元素为string路径 如 ["d:xxxyyy.js","d:xxxaaa.js"]  
*         {json}   // 组合JSON*
* {parm2} {boolean}// 打包/分包,true=打包、false=分包
* {parm3} {json object}
* return stream 不要理会
*/

var slime = require("./_builder/configs/slime.config.js");
slime.build(entry, [pack], [options])  


//打包、分包都会产出`{key: value}`对象,vlaue为数组,分包是多元素json
options:
 * [rename] 类型:String --- 分包不支持
   //重命名key值
   0、slime.build("./a", true, {rename: "xxx",type: "sass"})    //产出 xxx.css
   1、slime.build(["a.js","b.js"],{rename: "xxx"})  //产出 xxx.js
   2、slime.build({aaa: ["a.jsx","b.js"]},{rename: "xxx"})  //产出 xxx.js
   3、slime.build("./abc.js",{rename: "xxx"})  //产出 xxx.js

 * [type] 类型:String --- script不用指定,style/templet,都需要明确指定,如
   //指定文件类型
   1、slime.build("./a",{type: "sass"})
   2、slime.build("./a",{type: "hbs"})

 * [prepend] 类型:Array --- 分包不支持
   //value前插文件
   1、slime.build("./a",{prepend: ["./xxx.js"]})

 * [apend] 类型:Array --- 分包不支持
   //value后插文件
   1、slime.build("./a",{apend: ["./xxx.js"]})

# css 示例(coffee)

config = require "../configs/config.coffee"
test = config.dirs.src + "/css/pages/website/index.scss"     #string //产出index.css
ary = [                                                      #array  //分别产出文件名css
    config.dirs.src + "/css/pages/website/index.scss",
    config.dirs.src + "/css/pages/website/error-404.scss",
    config.dirs.src + "/css/pages/website/error-500.scss"
]
testcommon1 =  {ggggg: ary}                                  #json  //产出ggggg.css
testcommon2 =  {ggggg: ary,kkkkk: test}                      #json  //产出ggggg.css、kkkkk.css

module.exports = (gulp,$,slime)->
    return () ->
        slime.build(test,false,{type: "sass"});
        # slime.build(testcommon1,false,{type: "sass"});
        # slime.build(testcommon2,{type: "sass"});
# js 示例(coffee)

config = require "../configs/config.coffee"
test = config.dirs.src + "/js/pages/h5/lazypage/lazypage.jsx"
ary = [
    config.dirs.src + "/js/pages/h5/loadpage/loadpage.jsx"
]
testcommon1 =  {ggggg: ary}
testcommon2 =  {ggggg: ary,kkkkk: test}
module.exports = (gulp,$,slime)->
    return (cb) ->
        slime.build(testcommon2,cb);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85726.html

相关文章

  • 跟着大彬读源码 - Redis 7 - 对象编码之简单动态字符串

    摘要:没有直接使用语言传统的字符串表示以空字符串结尾的字符数组,而是构建了一种名为简单动态字符串的抽象类型,并将用作的默认字符串表示。对比字符串,有几大优点常数复杂度获取字符串长度杜绝缓冲区溢出减少修改字符串时所需的内存重分配次数。 Redis 没有直接使用 C 语言传统的字符串表示(以空字符串结尾的字符数组),而是构建了一种名为简单动态字符串(simple dynamic string)的...

    baishancloud 评论0 收藏0
  • Intellij + Cursive: 最佳 Clojure/Java 开发环境组合

    摘要:直到上个月重新发现的组合自然是大名鼎鼎的,多年来一直享有真正程序员最佳的美誉,但直到这个的出现和接近成熟,它的威力才能被我们享有。完全与一致水平并集成的调试能力。使用了一个多月,对这套感觉仍然好极了,的最佳开发环境,没有之一。 几乎从 Clojure 诞生时候起,它的标准开发环境就是 Emacs,对 Lisp 的亲近感、slime 对 Lisp 系列语言的支持、paredit 等 Li...

    Rocture 评论0 收藏0
  • Python的门面担当 - Tkinter

    摘要:在这个窗口之上,可以添加各种输入框按钮文本等,可以增加对各种动作的处理。事件要与特定的控件相绑定,比如按钮有点击事件,输入框有按键事件,窗体有关闭事件等。 在大多数时候,我们都在黑黢黢的控制台里执行 Python 脚本。这看起来很酷很 GEEK。但对于部分场景下的用户来说,这样就不大美观和人性化了:我们需要交互更方便的图形化产品,也就是 GUI (图形用户界面,Graphical Us...

    Lucky_Boy 评论0 收藏0
  • [译][Tkinter 教程12] 布局管理 (Pack Place Grid)

    摘要:已获原作者授权原系列地址简介本文讲述如何使用的布局管理被称作或有三种布局管理方式注意这三种布局管理在同一个里一定不可以混用布局管理有以下功能将控件放置在屏幕上包括控件的位置及控件的大小将控件注册到本地窗口系统中管理控件在屏幕上的显示虽然控件 已获原作者授权. 原系列地址: Python Tkinter 简介: 本文讲述如何使用 tkinter 的布局管理 (被称作 layout ma...

    xorpay 评论0 收藏0

发表评论

0条评论

0xE7A38A

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<