Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 1.4 KB

PreCompiler.md

File metadata and controls

39 lines (29 loc) · 1.4 KB

如何配置现有的 Foxman PreCompiler

PreCompiler 是指 Foxman 中的预处理器,如 css 预处理器;

config.preCompilers 接受一个数组,数组中每一项是一个 PreCompiler 模型

PreCompiler 模型:

test@Array(必须)

匹配该规则的文件会进行 handler 描述的编译操作

注意:test 文件匹配规则符合 glob 的文件匹配标准

handler@function

基于 Gulp 的 pipe 操作,该预处理器,会经过 Foxman-Mcss 处理后输出

handler: function (dest) {
    return [
        mcss({}),
        dest(resolve(__dirname, 'src/css/'))
    ]
}

如何编写一个 Foxman PreCompiler

由于文件处理的模块使用的是 vinyl-fs ,故所有的 Gulp Plugin 都能够改写成 Foxman 的 PreCompiler

你需要阅读,如何编写一个gulp插件

或者你可以找到已有的 Gulp Plugin,如 gulp-mcss | gulp-sass | gulp-less 进行改写。

改写 Foxman PreCompiler 的方法是:在实际的预处理器处理之后,emit 一个 "returnDeps" 的事件,传递出特定的对象

program.emit('returnDeps', {
    source: '/path/to/css.mcss', // 当前文件绝对路径
    deps: [] // 该文件的依赖
});

具体细节参考 Foxman-Mcss