Skip to content

Instantly share code, notes, and snippets.

@oxUnd
Last active August 29, 2015 14:20
Show Gist options
  • Save oxUnd/1eb20caaf8344f95724c to your computer and use it in GitHub Desktop.
Save oxUnd/1eb20caaf8344f95724c to your computer and use it in GitHub Desktop.
fis3

FIS3

FIS3 进度

  1. 2015-04-23 进度

    总体进度 65% 正式发布时间预计延期 2

    1. 完成功能开发

    2. 调整参数细节,Review 40%

    3. 实现单测 20%

    4. 文档进度 0%

    5. 测试 0%

Important
Review 环节非常重要,可能会邀请非组织内人员进行 Review

FIS3 功能点

  1. 人性化的配置 API

    1. fis.match

    2. fis.plugin

    3. fis.media

  2. 可自定义三种语言能力接口(语法)

  3. 支持内嵌异构语言脚本

  4. 支持按需编译

  5. 兼容现有社区插件

  6. lint 过程调整到编译最前面

  7. 去除 test 插件扩展点

  8. 产出相对路径支持

  9. 打包策略调整

    1. 支持分包功能

  10. 支持 FIS 安装到*本地*

  11. 默认产出 ID 调整

    1. JS 不再带有扩展名,方便 AMD 这种规范能轻松接入 (非常艰难的决定)

  12. 组件 repos 支持

  13. 脚手架体系

  14. 工程化社区 (延后)

FIS3 FIS2 功能对照表

Table 1. 配置
FIS2 FIS3

配置插件

fis.config.set('modules', ...)
fis.config.set('settings', ...)
fis.plugin('plugin-name', {
  /*settings*/
})

roadmap.path

fis.config.set('roadmap.path', [
    {
        reg: '**.js'
        , ...
    }
])
fis.match('**js', {
})

roadmap.domain

fis.config.set('roadmap.domain', ...)
fis.match('**.js', {
    domain: 'http://cdn.baidu.com/',
    ...
})

roadmap.ext

fis.config.set('roadmap.ext',
    {less:
        'css'
    })
fis.match('**.less', {
    rExt: 'css',
    ...
})

pack

fis.config.set('pack', {
    'all.js': '**.js'
})
fis.match('**.js', {
    packTo: 'all.js'
})

deploy

fis.config.set('deplay.rd', {
    ...
})
fis.media('rd').set('deploy', {
    ...
})
fis.media.match('**', {
    deploy: fis.media('dev').get('deploy')
})
Table 2. 命令行 (release)
FIS2 FIS3

-c, --clean

-c, --clean

-w, --watch

-w, --watch

-L, --live

-L, --live

-u, --unique

-u, --unique

-r, --root

-r, --root

-d, --dest <names> //@TODO

-d, --dest <names> //@TODO

-h, --help

-h, --help

-f, --file <filename>

-f, --file

-l, --lint

file.useLint

-D, --domains

file.domain; fis.useDomain

-t, --test

file.useTest

-o, --optimize

file.useOptimize

-m, --md5

file.useHash; file.keepOrigin

Table 3. File
FIS2 FIS3 说明

表现形式

fis.config.set('roadmap.path', []);

文件属性

roadmap

reg

*

release

release

url

url

query

query

id

id

charset

charset

isHtmlLike

isHtmlLike

isCssLike

isCssLike

isJsLike

isJsLike

useCompile

useCompile

默认*关*还是*开*,需要讨论

useHash

useHash

保留原文件路径这个需要再确认下?

useDomain

domain: ''

如果设置了就加,不设置就不加了。

useCache

useCache

默认都有

useMap

useMap

js,css 默认入表,FIS2, FIS3无差别

useParser

parser: fis.plugin(…​)

如果设置了插件就执行,没有设置就不过这类插件?

usePreprocessor

preprocessor: fis.plugin(…​)

同上

useStandard

standard: fis.plugin(…​)

同上;这块需要*注意*,当未配置 standard 插件的时候,会调用 builtin 进行类 FIS2 的 三种语言语法 分析,但 js 中的 require 移交给插件去分析处理,因为各种规范下写法 有点异样; IMPORTANT: js require 不再 builtin 处理

usePostprocessor

postprocessor: fis.plugin(…​)

同上

useLint

lint: fis.plugin(…​)

同上

useOptimizer

optimizer: fis.plugin(…​)

同上

useTest

<DEL>

不再在编译流程需要这个了

useSprite

sprite: fis.plugin(…​)

同上的上

isMod

isMod

extras

extras

requires

requires

FIS3

File 对象

Table 4. File
class 默认属性 后缀

Base

ext
rExt
realpath
realpathNoExt

subpath
subdirname
subpathNoExt

release
url

charset
id

All

useCompile = true;
useDomain = false;
useCache = true;
useHash = false;
useMap = false;
_isImage = true;
_isText = false;

.[\w]

isHtmlLike

useHash = false
useDomain = false
_isText = true
.html
.xhtml
.shtml
.htm
.tpl
.ftl
.vm
.php
.jsp
.asp
.aspx
.ascx
.cshtml
.master

isCssLike

useHash = true
useDomain = false
_isText = true
useMap = true
.css
.scss
.sass
.less
.styl

isJsLike

useHash = true
useDomain = true
_isText = true
useMap = true
.js
.jsx
.coffee

isJsonLike

.json

isImage

useDomain = true
useHash = true // exclude '.ico'

内嵌异构语言脚本

index.html
...
<script type="text/x-coffee">
    //...
</script>
...
index.html
<style type="text/x-less">
body {
    background-color: #F0F0F0;
    h1 {
        color: red;
    }
}
</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment