loader Version: 0.1.6 By @Jackson Tian

Assets loader.

loader: API索引


方法签名

Loader

静态资源加载器

方法签名

函数 Loader()
参数 压缩js路径()
参数 压缩css路径(s)

js

加载js文件

方法签名

方法 Loader.prototype.js()
参数 src(String)

js文件相对项目根目录的路径

css

加载css文件

方法签名

方法 Loader.prototype.css()
参数 href(String)

css文件相对项目根目录的路径

less

记得在static中间件之前使用,否则会被静态文件中间件处理

方法签名

方法 Loader.less()

stylus

记得在static中间件之前使用,否则会被静态文件中间件处理

方法签名

方法 Loader.stylus()

coffee

记得在static中间件之前使用,否则会被静态文件中间件处理

方法签名

方法 Loader.coffee()

dev

生成开发环境下的标签

方法签名

方法 Loader.prototype.dev()

pro

生成线上环境下的标签

方法签名

方法 Loader.prototype.pro()
参数 CDNMap(Object)

通过Loader.scanDir() => Loader.minify() => Loader.map()得到的map文件

参数 prefix(String)

CDN前缀。如有CDN,可以一键切换文件到CDN中

done

根据环境和版本号去生成对应标签
如果env没有传入,将取process.env.NODE_ENV作为判断,production为产品环境,其余将采用原始版本

方法签名

方法 Loader.prototype.done()
参数 CDNMap(Object)

通过Loader.scanDir() => Loader.minify() => Loader.map()得到的map文件

参数 prefix(String)

CDN前缀。如有CDN,可以一键切换文件到CDN中

参数 env(Boolean)

是否启用压缩版

scan

扫描文本中的静态资源部分,提取出目标路径和文件列表。
结果如下:

[
  {target: "x.js", assets:["path1", "path2"]},
  {target: "x.css", assets:["path1", "path2"]}
]

方法签名

方法 Loader.scan()
参数 view(String)

view html code

scanDir

扫描指定目录,生成合并压缩映射关系数组
生成结构如下:

[
  {target: "x.js", assets:["path1", "path2"]},
  {target: "x.css", assets:["path1", "path2"]}
]

方法签名

方法 Loader.scanDir()
参数 dirpath(String)

The dir path

transformScript

调用uglifyjs模块压缩脚本文件

方法签名

方法 Loader.transformScript()
参数 input(String)

JavaScript source code

transformLess

调用less模块编译less文件到CSS内容

方法签名

方法 Loader.transformLess()
参数 input(String)

JavaScript source code

transformStylus

调用stylus模块编译stylus文件到CSS内容

方法签名

方法 Loader.transformStylus()
参数 input(String)

JavaScript source code

transformCoffee

调用coffee-script模块编译coffee文件到JS内容

方法签名

方法 Loader.transformCoffee()
参数 input(String)

JavaScript source code

transformStyle

调用clean css模块压缩样式表文件

方法签名

方法 Loader.transformStyle()
参数 input(String)

CSS source code

minify

根据传入映射关系数组和指定的基本目录地址,调用uglifyjs和cleancss压缩文本
并生成带MD5签名的压缩文件,以及一个debug文件

[
  {target: "x.js", assets:["path1", "path2"]},
  {target: "x.css", assets:["path1", "path2"]}
]
=>
[
  {target: "x.js", min: "x.hash.js", debug: "x.hash.debug.js",
     assets:["path1", "path2"]},
  {target: "x.css", min: "x.hash.css", debug: "x.hash.debug.css",
     assets:["path1", "path2"]}
]

方法签名

方法 Loader.minify()
参数 basedir(String)

基本目录路径

参数 arr(Array)

静态资源数组

map

将压缩生成的文件映射关系转换为map

[
  {target: "x.js", min: "x.hash.js", debug: "x.hash.debug.js",
     assets:["path1", "path2"]},
  {target: "x.css", min: "x.hash.css", debug: "x.hash.debug.css",
     assets:["path1", "path2"]}
]
=>
{
  "x.js": "x.hash.js",
  "x.css": "x.hash.css"
}

方法签名

方法 Loader.map()
参数 arr(Array)

压缩生成的映射关系数组