SLIME PACK是github上的一個前端編譯項目,本身在github上搜下sp-buildphp
經過slime.build生成js、css的生產和開發環境所需的文件,生產環境會自動帶壓縮及帶hash,對於不熟悉gulp的同窗,多是個好的學習資料,能夠看看裏面的源碼及佈局,以便於開始本身在公司的項目css
下面是slime.build函數的詳細說明html
默認類型說明 //style: ['css', 'scss', 'sass', 'less', 'stylus', 'styl'] //templet: ['hbs', 'swig', 'htm', 'html', 'php', 'jsp'] //script: ['js', 'jsx', 'coffee', 'cjsx'] /* * 靜態文件生成函數 * {parm1} {string} // 文件名,完整的文件名稱,如絕對路徑 d:\xxx\yyy.js * {string} // 配置名,config中默認的名稱,如 config -> pages * {string} // 目錄名,如存在的目錄 d:\xxx * {array} // 組合數組,數組元素爲string路徑 如 ['d:\xxx\yyy.js','d:\xxx\aaa.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 一、slime.build(['a.js','b.js'],{rename: 'xxx'}) //產出 xxx.js 二、slime.build({aaa: ['a.jsx','b.js']},{rename: 'xxx'}) //產出 xxx.js 三、slime.build('./abc.js',{rename: 'xxx'}) //產出 xxx.js * [type] 類型:String --- script不用指定,style/templet,都須要明確指定,如 //指定文件類型 一、slime.build('./a',{type: 'sass'}) 二、slime.build('./a',{type: 'hbs'}) * [prepend] 類型:Array --- 分包不支持 //value前插文件 一、slime.build('./a',{prepend: ['./xxx.js']}) * [apend] 類型:Array --- 分包不支持 //value後插文件 一、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);