编译相关函数入口, 输入为 文件对象,没有输出,直接修改文件对象内容。
默认文件编译会尝试从缓存中读取,如果缓存有效,将跳过编译。
- Source:
Example
var file = fis.file(filepath);
fis.compile(file);
console.log(file.getContent());
Namespaces
Members
(static) settings
fis 编译默认的配置项
Properties:
Name | Type | Description |
---|---|---|
debug |
Boolean | 如果设置成了 true, 那么编译缓存将会使用 debug 文件夹来存储缓存。 |
beforeCacheRevert |
function | 当文件从缓存中还原回来前执行。 |
afterCacheRevert |
function | 当文件从缓存中还原回来后执行。 |
beforeCompile |
function | 当文件开始编译前执行。 |
afterCompile |
function | 当文件开始编译后执行。 |
- Source:
Methods
(static) analyseComment(comment, callbackopt)
分析注释中依赖用法。
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
comment |
String | 注释内容 |
|
callback |
Callback |
<optional> |
可以通过此参数来替换原有替换回调函数。 |
- Source:
(static) clean(name)
清除缓存
Parameters:
Name | Type | Description |
---|---|---|
name |
String | 想要清除的缓存目录,缺省为清除默认缓存或全部缓存 |
- Source:
(static) extCss(content, callback, file)
标准化处理 css 内容, 识别各种外链用法,并将其转换成中间码。
- [@require id] in comment to require resource
- [@import url(path?__inline)] to embed resource content
- url(path) to locate resource
- url(path?__inline) to embed resource content or base64 encodings
- src=path to locate resource
Parameters:
Name | Type | Description |
---|---|---|
content |
String | css 内容。 |
callback |
Callback | 正则替换回调函数,如果不想替换,请传入 null. |
file |
File | js 内容所在文件。 |
- Source:
(static) extHtml(content, callback, file)
标准化处理 html 内容, 识别各种语法,并将其转换成中间码。
<!--inline[path]-->
to embed resource content<img|embed|audio|video|link|object ... (data-)?src="path"/>
to locate resource<img|embed|audio|video|link|object ... (data-)?src="path?__inline"/>
to embed resource content<script|style ... src="path"></script|style>
to locate js|css resource<script|style ... src="path?__inline"></script|style>
to embed js|css resource<script|style ...>...</script|style>
to analyse as js|css
Parameters:
Name | Type | Description |
---|---|---|
content |
String | html 内容。 |
callback |
Callback | 正则替换回调函数,如果不想替换,请传入 null. |
file |
File | js 内容所在文件。 |
- Source:
(static) extJs(content, callback, file)
标准化处理 javascript 内容, 识别 inline、uri 和 __require 的用法,并将其转换成中间码。
- [@require id] in comment to require resource
- __inline(path) to embedd resource content or base64 encodings
- __uri(path) to locate resource
- require(path) to require resource
Parameters:
Name | Type | Description |
---|---|---|
content |
String | js 内容 |
callback |
Callback | 正则替换回调函数,如果不想替换,请传入 null. |
file |
File | js 内容所在文件。 |
- Source:
(static) isInline(info)
判断info.query是否为inline
abc?__inline
return trueabc?__inlinee
return falseabc?a=1&__inline'
return trueabc?a=1&__inline=
return trueabc?a=1&__inline&
return trueabc?a=1&__inline
return true
Parameters:
Name | Type | Description |
---|---|---|
info |
Object |
- Source:
(static) partial(content, host, info)
编译代码片段。用于在 html 中内嵌其他异构语言。
Parameters:
Name | Type | Description |
---|---|---|
content |
String | 代码片段。 |
host |
File | 代码片段所在的文件,用于片段中对其他资源的查找。 |
info |
Object | 文件信息。 |
- Source:
Example
var file = fis.file(root, 'static/_nav.tmpl');
var content = file.getContent();
// tmpl 文件本身是 html 文件,但是会被解析成 js 文件供 js 使用。正常情况下他只有 js 语言能力。但是:
content = fis.compile.partial(content, file, {
ext: 'html' // set isHtmlLike
});
file.setConent(content);
// 继续走之后的 js parser 流程。
(static) process(file)
单文件编译入口,与 fis.compile 不同的是,此方法内部不进行缓存判断。
Parameters:
Name | Type | Description |
---|---|---|
file |
File | 文件对象 |
- Source:
(static) setup(opt) → {String}
在编译前,初始化配置项。关于配置项,请查看 fis.compile.settings
Parameters:
Name | Type | Description |
---|---|---|
opt |
Object |
- Source:
Returns:
缓存文件夹路径
- Type
- String
(static) xLang(tag, content, file, defaultExt) → {String}
处理type类型为 x-**
的block标签。
<head>
<style type="x-scss">
@import "compass/css3";
#border-radius {
@include border-radius(25px);
}
</style>
</head>
Parameters:
Name | Type | Description |
---|---|---|
tag |
String | 标签 |
content |
String | the content of file |
file |
File | fis.file instance |
defaultExt |
String | what is ? |
- Source:
Returns:
- Type
- String
(inner) builtinStandard(content, file, conf)
内置的标准化处理函数,外部可以覆写此过程。
- 对 html 文件进行 fis.compile.extHtml 处理。
- 对 js 文件进行 fis.compile.extjs 处理。
- 对 css 文件进行 fis.compile.extCss 处理。
Parameters:
Name | Type | Description |
---|---|---|
content |
String | 文件内容 |
file |
File | 文件对象 |
conf |
Object | 标准化配置项 |
- Source:
(inner) pipe(file, type, keepopt)
让文件像管道一样经过某个流程处理。注意,跟 stream 的 pipe 不同,此方法不支持异步,而是同步的处理。
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
file |
File | 文件对象 |
|
type |
String | 类型 |
|
keep |
Boolean |
<optional> |
是否保留文件内容。 |
- Source:
(inner) postStandard(file)
将中间码还原成源码。
中间码说明:(待补充)
Parameters:
Name | Type | Description |
---|---|---|
file |
file | 文件对象 |
- Source: