plover-assets
v5.0.0
Published
plover assets helper and middleware
Downloads
12
Readme
plover-assets
【基础插件】提供前端资源相关的帮助方法和开发环境支持。
Options
你能够通过配置信息定制化plover-assets模块。
const app = plover({
assets: {
prefix: '/g'
}
});
concatItems
资源标签合并项。
e.g
配置信息
assets: {
concatItems: [{
match: /^\/g\/(.*)$/, // 资源访问URL正则匹配
prefix: '/g/??' // 资源标签引用src前缀
}]
}
页面资源引用
{{assets.css('lib:css/tabs.css')}}
{{assets.css('css/mytabs.css')}}
{{assets.js('lib:js/tabs.js')}}
{{assets.js('js/mytabs.js')}}
页面资源引用实际情况
<link rel="stylesheet" href="//127.0.0.1:10010/g/??lib/css/tabs.css,list/css/mytabs.css" />
<script src="//127.0.0.1:10010/g/??lib/js/tabs.js,list/js/mytabs.js"></script>
enableConcat
是否开启资源标签合并功能,默认关闭,详见concatItems。
enableMiddleware
是否启用plover-assets中间件模块,静态资源由plover应用处理(生产环境由cdn或nginx处理)。
prefix
资源访问URL的前缀,默认为/g
。
publicRoot
公共资源路径,应用根路径的相对路径。
simpleMode
是否为简单模式,默认为否,即采用异步方式引入资源。
tagAttrs
定义资源标签属性。
e.g.
assets: {
tagAttrs: {
js: { // 资源类型
default: { // 资源所在组
jsAttr: 'testJS'
}
},
css: {
default: {
cssAttr: 'testCSS'
}
}
}
}
页面资源引用实际情况
<link rel="stylesheet" href="//localhost:10010/g/index/css/view.css" cssAttr="testCSS" />
<script src="//localhost:10010/g/index/js/view.js" jsAttr="testJS"></script>
urlPattern
资源访问URL模式,默认为prefix
+ '/{name}/{path}'
。
assets Helper
css
添加样式资源。
e.g.
// assets.css(url, group)
{{assets.css('assets:bootstrap/dist/css/bootstrap.min.css', 'layout')}}
js
添加脚本资源。
e.g.
// assets.js(url, group)
{{assets.js('//astyle-src.alicdn.com/fdevlib/js/gallery/jquery/jquery-latest.js', 'default')}}
url
返回资源访问URL。
e.g.
// assets.url(moduleName:assetsPath)
<img src={{assets.url('img/combo.png')}} /> // 当前模块的assets目录中img/combo.png资源
<img src={{assets.url('lib:img/logo.png')}} /> // lib模块的assets目录中img/logo.png
页面渲染结果
<img src="//127.0.0.1:10010/g/index/img/combo.png" />
<img src="//127.0.0.1:10010/g/lib/img/logo.png" />
resolve
根据路由信息,返回当前路由资源访问URL。
cssTag
创建样式标签。
e.g.
// assets.cssTag(groups)
{{assets.cssTag()}}
在当前位置创建样式标签
<link rel="stylesheet" href="//..." />
jsTag
创建脚本标签。
e.g.
// assets.jsTag(groups)
{{assets.jsTag()}}
在当前位置创建脚本标签
<script src="//..."></script>
transform
根据路由信息,返回当前路由资源对象。
资源对象格式
{
default: {
css: [],
js: []
},
layout: {
css: [],
js: []
},
${groupName}: {
css: [],
js: []
}
}
root
返回当前模块资源访问根路径。
e.g.
<img src="{{assets.root}}img/logo.png" />
页面渲染结果
<img src=//127.0.0.1:10010/g/index/img/logo.png />
ploverAssetsHandler
提供使用插件方式扩展资源的处理能力。
add
添加资源处理器。
e.g.
/**
* 资源处理函数
* @param path 资源文件路径
* @param source 资源文件内容
* @param info 当前模块信息
* @param options 额外的可选项
*/
function* PloverAssetsHandlerLess(path, source, info, options) {
// todo
}
/**
* 添加资源处理器
* @param type 资源类型,e.g. 'css', 'js'。
* @param ext 资源扩展名,e.g. `.less`。
* @param handler 资源处理函数。
* @param order 资源处理顺序,默认为`3`。
*/
app.ploverAssetsHandler.add('css', '.less', PloverAssetsHandlerLess, order);
实例
filter
尝试找到path对应的文件并编译,用在请求一定的url上。
/**
*
* @param path 资源文件路径
* @param info 当前模块信息
* @param options 可选项
*/
app.ploverAssetsHandler.filter(path, info, options);
compile
对指定文件进行编译。
/**
*
* @param path 资源路径
* @param info 当前模块信息
* @param options 额外的信息
*/
app.ploverAssetsHandler.compile(path, info, options);