当前位置: 首页 > 文档资料 > FIS3 中文文档 >

fis

优质
小牛编辑
129浏览
2023-12-01

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:
NameTypeDescription
typeSring

事件类型

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:
NameTypeDescription
typeSring

事件类型

handlerfunction

响应函数

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:
NameTypeDescription
typeSring

事件类型

handlerfunction

响应函数

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:
NameTypeAttributesDescription
pluginNameString

插件名字。

说明:pluginName 不是对应的 npm 包名,而是对应 npm 包名去掉 fis 前缀,去掉插件扩展点前缀。

如:fis-parser-sass 包,在这里面配置就是:

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

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

positionString<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:
NameTypeDescription
optObject

配置项

Properties
NameTypeAttributesDescription
srcCacheArray<optional>

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

beforeEachCallback<optional>

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

afterEachCallback<optional>

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

beforeCompileCallback<optional>

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

afterCompileCallback<optional>

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

beforeCacheRevertCallback<optional>

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

afterCacheRevertCallback<optional>

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

callbackCallback

当整体编译完成后执行。

Source:

(static) removeAllListeners(typeopt)

取消监听所有事件监听,如果指定了事件类型,那么只会取消掉指定的事件类型的所有监听。

代理 fis.emitter.removeAllListeners.

Parameters:
NameTypeAttributesDescription
typeString<optional>

事件类型

Source:
See:

(static) removeListener(type, handler)

取消监听某事件。注意,如果同一个事件类型和同一响应函数被监听了多次,此函数一次只会移除一次。

代理 fis.emitter.removeListener.

Parameters:
NameTypeDescription
typeString

事件类型

handlerfunction

响应函数

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:
NameTypeDescription
paths...String

去掉 fis 前缀的包名字,可以以多个参数传进来,多个参数会自动通过 - 符号连接起来。

Properties:
NameTypeDescription
prefixesArray

用来配置 fis.require 前缀的查找规则的。默认:['fis3', 'fis']。

_cacheObject

用来缓存模块加载,避免重复查找。

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:
NameTypeDescription
titleString

描述内容

Source:
Returns:
Type
Undefined
Example
fis.time('Comiple cost');
// => compile cost 56ms

Events

lookup:file

当查找文件时派送, 可以扩展 fis 默认的查找文件功能。如:支持无后缀文件查找,支持 components 文件查找。

Properties:
NameTypeDescription
infoObject

包含查找路径信息。

fileFile

文件对象。

Source: