fis
fis
fis 名字空间,fis 中所有工具和方法都是通过此变量暴露给外部使用。
Namespaces
Members
(static) info
fis 的 npm 包信息。
(static) version
fis 版本号
Methods
(static) emit(type) → {Boolean}
发送事件,将所有监听此事件名的响应函数挨个执行一次,并把消息体参数 args.. 带过去。
代理 fis.emitter.emit.
Parameters:
Name | Type | Description |
---|---|---|
type | Sring | 事件类型 |
args... | Mixed | 消息体数据,任意多个,所有参数都可以在 |
- Source:
- See:
Returns:
如果有事件响应了,则返回 true
否则返回 false
.
- Type
- Boolean
Example
fis.emit('donthing', {
foo: 1
});
(static) on(type, handler)
用来监听 fis 中的事件。每次添加都不会有额外的检测工作,也就是说重复添加有可能被调用多次。
注意:以下示例中 type 为 project:lookup
, 但是它没有多余的意思,就是一段字符串,跟 namespace 没有一点关系。
代理 fis.emitter.on.
Parameters:
Name | Type | Description |
---|---|---|
type | Sring | 事件类型 |
handler | function | 响应函数 |
- Source:
- See:
Example
fis.on('project:lookup', function(uri, file) {
// looking for uri from file.
console.log('Looking for %s from $s', uri, file.subpath);
});
(static) once(type, handler)
跟 fis.on 差不多,但是只会触发一次。
代理 fis.emitter.once.
Parameters:
Name | Type | Description |
---|---|---|
type | Sring | 事件类型 |
handler | function | 响应函数 |
Example
fis.once('compile:start', function(file) {
console.log('The file %s is gona compile.', file.subpath);
});
(static) plugin(pluginName, options, positionopt)
仅限于 fis-conf.js 中使用,用来包装 fis 插件配置。
需要在对应的插件扩展点中配置才有效,否则直接执行 fis.plugin 没有任何意义。
单文件扩展点:
- lint
- parser
- preprocess
- standard
- postprocess
- optimizer
打包阶段扩展点:
- prepacakger
- sprite
- packager
- postpackager
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
pluginName | String | 插件名字。 说明:pluginName 不是对应的 npm 包名,而是对应 npm 包名去掉 fis 前缀,去掉插件扩展点前缀。 如:fis-parser-sass 包,在这里面配置就是:
| |
options | Object | 插件配置项,具体请参看插件说明。 | |
position | String | <optional> | 可选:'prepend' | 'append'。默认为空,当给某类文件配置插件时,都是覆盖式的。而通过设置此插件可以做到,往前追加和往后追加。 如:
|
Example
fis.match('*.scss', {
parser: fis.plugin('sass', {
include_paths: [
'./static/scss/libaray'
]
})
});
fis.match('::packager', {
postpackager: fis.plugin('loader', {
allInOne: true
});
})
(static) release(opt, callback)
fis 整体编译入口。
Parameters:
Name | Type | Description | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
opt | Object | 配置项 Properties
| ||||||||||||||||||||||||||||||||
callback | Callback | 当整体编译完成后执行。 |
- Source:
(static) removeAllListeners(typeopt)
取消监听所有事件监听,如果指定了事件类型,那么只会取消掉指定的事件类型的所有监听。
代理 fis.emitter.removeAllListeners.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
type | String | <optional> | 事件类型 |
- Source:
- See:
(static) removeListener(type, handler)
取消监听某事件。注意,如果同一个事件类型和同一响应函数被监听了多次,此函数一次只会移除一次。
代理 fis.emitter.removeListener.
Parameters:
Name | Type | Description |
---|---|---|
type | String | 事件类型 |
handler | function | 响应函数 |
- Source:
- See:
Example
fis.on('project:lookup', function onLookup(uri, file) {
// looking for uri from file.
console.log('Looking for %s from $s', uri, file.subpath);
});
fis.removeListener('project:lookup', onLookup);
(static) require()
用来加载 fis 插件。通过它来加载插件,会优先从本地安装的 node_modules 目录里面找,然后才是 global
全局安装的 node_modules 里面找。
Parameters:
Name | Type | Description |
---|---|---|
paths... | String | 去掉 fis 前缀的包名字,可以以多个参数传进来,多个参数会自动通过 |
Properties:
Name | Type | Description |
---|---|---|
prefixes | Array | 用来配置 fis.require 前缀的查找规则的。默认:['fis3', 'fis']。 |
_cache | Object | 用来缓存模块加载,避免重复查找。 |
- Source:
Example
// 查找顺序
// local: fis3-parser-sass
// local: fis-parser-sass
// global: fis3-parser-sass
// global: fis-parser-sass
fis.require('parser-sass');
(static) time(title) → {Undefined}
输出时间消耗,单位为 ms.
Parameters:
Name | Type | Description |
---|---|---|
title | String | 描述内容 |
Returns:
- Type
- Undefined
Example
fis.time('Comiple cost');
// => compile cost 56ms
Events
lookup:file
当查找文件时派送, 可以扩展 fis 默认的查找文件功能。如:支持无后缀文件查找,支持 components 文件查找。
Properties:
Name | Type | Description |
---|---|---|
info | Object | 包含查找路径信息。 |
file | File | 文件对象。 |
- Source: