Assets loader.
方法签名
静态资源加载器
方法签名
函数 | Loader() | ||
参数 | 压缩js路径() | ||
参数 | 压缩css路径(s) |
加载js文件
方法签名
方法 | Loader.prototype.js() | ||
参数 | src(String) | js文件相对项目根目录的路径 |
加载css文件
方法签名
方法 | Loader.prototype.css() | ||
参数 | href(String) | css文件相对项目根目录的路径 |
记得在static中间件之前使用,否则会被静态文件中间件处理
方法签名
方法 | Loader.less() |
记得在static中间件之前使用,否则会被静态文件中间件处理
方法签名
方法 | Loader.stylus() |
记得在static中间件之前使用,否则会被静态文件中间件处理
方法签名
方法 | Loader.coffee() |
生成开发环境下的标签
方法签名
方法 | Loader.prototype.dev() |
生成线上环境下的标签
方法签名
方法 | Loader.prototype.pro() | ||
参数 | CDNMap(Object) | 通过Loader.scanDir() => Loader.minify() => Loader.map()得到的map文件 |
|
参数 | prefix(String) | CDN前缀。如有CDN,可以一键切换文件到CDN中 |
根据环境和版本号去生成对应标签
如果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) | 是否启用压缩版 |
扫描文本中的静态资源部分,提取出目标路径和文件列表。
结果如下:
[
{target: "x.js", assets:["path1", "path2"]},
{target: "x.css", assets:["path1", "path2"]}
]
方法签名
方法 | Loader.scan() | ||
参数 | view(String) | view html code |
扫描指定目录,生成合并压缩映射关系数组
生成结构如下:
[
{target: "x.js", assets:["path1", "path2"]},
{target: "x.css", assets:["path1", "path2"]}
]
方法签名
方法 | Loader.scanDir() | ||
参数 | dirpath(String) | The dir path |
调用uglifyjs模块压缩脚本文件
方法签名
方法 | Loader.transformScript() | ||
参数 | input(String) | JavaScript source code |
调用less模块编译less文件到CSS内容
方法签名
方法 | Loader.transformLess() | ||
参数 | input(String) | JavaScript source code |
调用stylus模块编译stylus文件到CSS内容
方法签名
方法 | Loader.transformStylus() | ||
参数 | input(String) | JavaScript source code |
调用coffee-script模块编译coffee文件到JS内容
方法签名
方法 | Loader.transformCoffee() | ||
参数 | input(String) | JavaScript source code |
调用clean css模块压缩样式表文件
方法签名
方法 | Loader.transformStyle() | ||
参数 | input(String) | CSS source code |
根据传入映射关系数组和指定的基本目录地址,调用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
[
{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) | 压缩生成的映射关系数组 |