fis

fis

fis 名字空间,fis 中所有工具和方法都是通过此变量暴露给外部使用。

Source:

Namespaces

cache
cli
compile
config
emitter
file
log
project
uri
util

Members

(static) info

fis 的 npm 包信息。

Source:

(static) version

fis 版本号

Source:

Methods

(static) emit(type) → {Boolean}

发送事件,将所有监听此事件名的响应函数挨个执行一次,并把消息体参数 args.. 带过去。

代理 fis.emitter.emit.

Parameters:
Name Type Description
type Sring

事件类型

args... Mixed

消息体数据,任意多个,所有参数都可以在 handler 中获取到。

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

响应函数

Source:
See:
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 包,在这里面配置就是:

fis.match('*.scss', {
  parser: fis.plugin('sass')
});
options Object

插件配置项,具体请参看插件说明。

position String <optional>

可选:'prepend' | 'append'。默认为空,当给某类文件配置插件时,都是覆盖式的。而通过设置此插件可以做到,往前追加和往后追加。

如:

fis.match('*.xxx', {
  parser: fis.plugin('a')
});

// 保留 plugin a 同时,之后再执行 plugin b
fis.match('*.xxx', {
  parser: fis.plugin('b', null, 'append')
});
Source:
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
Name Type Attributes Description
srcCache Array <optional>

需要编译的文件列表,当没有填写时,fis 将通过 fis.project.getSource() 获取

beforeEach Callback <optional>

编译开始前执行的回调函数,无论走缓存与否。

afterEach Callback <optional>

编译完成后执行的回调函数,无论走缓存与否。

beforeCompile Callback <optional>

编译开始前执行,当采用缓存时不执行。

afterCompile Callback <optional>

编译完成后执行,当采用缓存时不执行。

beforeCacheRevert Callback <optional>

在缓存被应用到文件对象前执行。

afterCacheRevert Callback <optional>

在缓存被应用到文件对象后执行。

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

描述内容

Source:
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: