compile

fis. compile

编译相关函数入口, 输入为 文件对象,没有输出,直接修改文件对象内容。

默认文件编译会尝试从缓存中读取,如果缓存有效,将跳过编译。

Source:

Example

var file = fis.file(filepath);
fis.compile(file);
console.log(file.getContent());

Namespaces

lang

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 true
  • abc?__inlinee return false
  • abc?a=1&__inline' return true
  • abc?a=1&__inline= return true
  • abc?a=1&__inline& return true
  • abc?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)

内置的标准化处理函数,外部可以覆写此过程。

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: