fis3-prepackager-imweb-ques
Version:
fis3 prepackager plugin for q components of imweb team
118 lines (96 loc) • 2.6 kB
Markdown
# fis3-prepackager-imweb-ques
fis3 prepackager plugin for q components of imweb team
# 标识Ques页面
```js
fis.match('pages/**main.html', {
isQPage: true
})
```
or
```html
<!--isQPage-->
<html lang="en">
<head></head>
<body></body>
</html>
```
# 处理过程
- components/*.{css,js,scss}
只替换`holder`成模块名
- 入口文件 pages/main.html
- 添加components css/js依赖
- 展开components
- 添加components 信息(之前ques不需要,但它需要在components js文件里注册组件,为了简化对components js的处理, 将注册组件统一移至Q.factory中,因此添加组件信息)
输入:
```html
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="/pages/start/main.css">
</head>
<body>
<chead></chead>
<script src="/libs/mod.js"></script>
<script src="/libs/jquery.min.js"></script>
<script>
require('libs/Q.factory')();
</script>
</body>
</html>
```
输出:
```html
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="/pages/start/main.css">
</head>
<body>
<!-- 展开components -->
<div q-text="text" class="component-1"></div>
<script src="/libs/mod.js"></script>
<script src="/libs/jquery.min.js"></script>
<!-- components 信息 -->
<script>var _components = {"chead":{"js":"components/chead/main","child":1,"uid":1}};</script>
<script>
require('libs/Q.factory')();
</script>
</body>
</html>
```
```js
// 添加components css依赖
file.addRequire('/components/chead/main.css');
// 添加components js依赖
file.addRequire('/components/chead/main.js');
```
# 依赖
- commonJs (包裹js成AMD)
# 配置
- `holder`: `/___|\$__/g` 占位符
- `hash`: `false` 是否对占位符做hash处理
- `components`: `['/components', getComp]` 组件路径
```js
function getComp(name, ret) {
return {
name: name,
html: html.getContent(),
htmlFile: html,
js: js && js.getContent() || null,
jsFile: js || null,
css: css && css.getContent() || null,
cssFile: css || null
}
}
```
# 问题
- components是否支持与scss集成
- 支持, component的样式文件按main.css, main.scss, main.less的顺序查找
- 使用main.scss main.less时占位符`holder`请勿使用`$__`, `$`对scss会报错, 可以使用3个下划线`___`
- 如何使用查找到lego下的component
- 配置components中传入查找函数,想怎么找就怎么找