Skip to content

Latest commit

 

History

History
909 lines (581 loc) · 23.7 KB

CHANGELOG.md

File metadata and controls

909 lines (581 loc) · 23.7 KB

1.7.16 / Fri Aug 29 2014

hotfix

1.7.15 / Thu Aug 21 2014

修复若干bug

升级fis-command-server至v0.6.12

升级fis-optimizer-png-compressor至v0.0.6

升级fis-spriter-csssprites至v0.2.5

升级fis-kernel至v2.0.7

1.7.14 / Tue Jul 02 2014

hotfix 缓存依赖更新失效问题

bugfix 由于node更改normalize接口导致路径匹配错误bug

1.7.13 / Tue Jul 01 2014

升级fis-command-server至v0.6.10

升级fis-kernel至v2.0.4

bugfix #94

1.7.12 / Thu Jun 05 2014

clean-css 有bug,降级到1.x版本

1.7.11 / Wed Jun 04 2014

升级fis-optimizer-clean-css至v0.0.10

升级fis-optimizer-uglify-js至v0.1.2

  • uglifyjs升级至v2.4.13
  • clean-css升级至v2.1.8

1.7.10 / Wed Jun 04 2014

升级fis-optimizer-png-compressor至v0.0.5

1.7.9 / Mon May 12 2014

升级fis-spriter-csssprites至v0.2.3

升级fis-optimizer-png-compressor至v0.0.4

  • [feature] csssprites支持background-size

    background-size 只支持图片同倍率缩小或者放大;scale < 1缩小, scale > 1放大;其配置如下,当设置scale时,不需要给每一个规则都写上background-size,csssprites会根据scale产出正确的结果。

    fis.config.set('settings.spriter.csssprites', {
        scale: 0.5
    });

1.7.8 / Tue Apr 22 2014

升级fis-kernel至v2.0.3

[feature] 将jsx、styl纳入默认识别的文件中

  • jsx isText: true isJsLike: true mime: text/javascript
  • style isText: true isCssLike: true mime: text/css

1.7.7 / Wed Apr 16 2014

升级fis-kernel至v2.0.2

升级fis-spriter-csssprites至v0.2.0

  • [bugfix] 单机多用户编译缓存冲突bug
  • [bugfix] csssprites 合并后css一个规则有太多selector导致在ie6下失效的bug

1.7.4 / Mon Mar 24 2014

升级fis-spriter-csssprites至v0.1.9

升级fis-command-release至v0.9.7

升级fis-command-server至v0.6.9

  • 启动node服务器时,在document_root执行npm install安装依赖

  • 添加注释语法,当release -L时替换为livereload.js的链接,这样就不需要安装浏览器插件了。

    注意:如果页面有</body>标签,就不需要再在页面使用<!--livereload-->了。因为它跟</body>起到相同的作用。这个功能主要提供给那些包装了body标签的解决方案使用。

1.7.3 / Sat Mar 01 2014

升级fis-spriter-csssprites至v0.1.8

  • 添加对内联css的支持

    fis.config.set('settings.spriter.csssprites', {
        //开启模板内联css处理,默认关闭
        htmlUseSprite: true,
        //默认针对html原生<style></style>标签内的内容处理。
        //用户可以通过配置styleTag来扩展要识别的css片段
        //以下是默认<style></style>标签的匹配正则
        styleReg: /(<style(?:(?=\s)[\s\S]*?["'\s\w\/\-]>|>))([\s\S]*?)(<\/style\s*>|$)/ig
    
        //**styleReg规则**
        //1. 默认不配置styleReg,仅支持html中默认style标签中的css内容
        //2. 配置styleReg时候,仅支持styleReg匹配到的内容。
        //3. styleReg正则必须捕获三个分组,
        //     $1为:开始标签(start tag),
        //     $2为:内容(content) ,
        //     $3为:结束标签(end tag)
    });

1.7.2 / Wed Feb 26 2014

升级fis-command-release至v0.9.6

  • 修复fis-conf.js中配置了livereload监听端口和hostname,但是发布的文件添加livereload.js脚本的url地址引用错误的bug。 感谢来自 @qdsang 的贡献 pull#2

1.7.1 / Tue Feb 18 2014

升级fis-kernel至2.0.0

  • 内核支持事件监听和派发(仅增加接口,尚未派发任何事件):

    fis.emitter.on('compile.optimier', function(file){
        //TODO
    });
    fis.emitter.emit('release', file);
  • 支持多种前缀的插件调用

    fis.require.prefixes = [ 'your_package_name', 'fis' ];

    配置后,fis会优先尝试加载 your_package_name-xxx 插件,后尝试加载 fis-xxx 插件,此功能用于fis的包装产品中。

  • 包装器负责指定 --help 需要显示帮助的命令,例如:

    fis.cli.help.commands = [ 'release', 'server', 'install' ];

1.6.8 / Wed Feb 12 2014

升级fis-command-release至0.9.5

  • 修复mac系统下livereload报错的bug

1.6.7 / Wed Feb 12 2014

升级fis-kernel至v1.9.9

  • 修复html的script标签中js嵌入其他非js的文本文件时结果不是字符串的bug

1.6.6 / Sun Jan 26 2014

升级fis-kernel至v1.9.8

  • 支持html中的source标签相关资源定位和嵌入功能

1.6.5 / Wed Jan 22 2014

升级fis-kernel至v1.9.7

  • 在html中支持使用<link rel="import" href="xxx?__inline">来嵌入资源,参考w3c html imports

1.6.4 / Sun Jan 19 2014

升级fis-kernel至v1.9.6

  • 只允许rel属性为 stylesheet 的link标签,在inline的时候内嵌为style标签,例如:

    • v1.6.3或之前

      • 源码:
      <link rel="stylesheet" href="xxx?__inline"/>
      <link rel="abc" href="xxx?__inline"/>
      <link href="xxx?__inline"/>
      • 编译后(未考虑rel属性) :
      <link rel="stylesheet" href="xxx?__inline"/>
      <link rel="abc" href="xxx?__inline"/>
      <link href="xxx?__inline"/>
    • v1.6.4之后

      • 源码:
      <link rel="stylesheet" href="xxx?__inline"/>
      <link rel="abc" href="xxx?__inline"/>
      <link href="xxx?__inline"/>
      • 编译后(仅对rel属性为stylesheet的link标签有效):
      <style>xxx的内容</style>
      <link rel="abc" href="/url/of/xxx?__inline"/>
      <link href="/url/of/xxx?__inline"/>
    • 之所以这样修改,是因为link标签不仅仅是css外联标签,还包括很多其他资源,延伸阅读请参考 link类别

1.6.3 / Thu Jan 01 2014

升级fis-kernel至v1.9.5

  • 文件useCompile为false的文本文件依旧支持编码转换和deploy的字符串替换

1.6.2 / Thu Jan 01 2014

升级fis-command-server至v.0.6.8

  • 新增nodejs版本server支持
  • 合并--no-rewrite和--script参数,为--rewrite [script]参数
  • 支持fis的包装版本在配置中指定server的各项参数

1.6.1 / Thu Dec 12 2013

升级fis-kernel至v1.9.3

  • roadmap.path支持useParser,usePreprocessor,useStandard,usePostprocessor,useLint,useTest,useOptimizer属性,用以细粒度控制编译过程

1.6.0 / Tue Dec 03 2013

升级fis-spriter-csssprites至v0.1.7

  • 修复图片使用query时不能合并csssprite的bug

  • 新增矩阵布局算法,配置方法:

    //此配置的默认值是'linear',线性布局
    fis.config.set('settings.spriter.csssprites.layout', 'matrix');

升级fis-optimizer-clean-css至v0.0.9

  • 升级依赖的clean-css包至v1.1.7

升级fis-optimizer-uglify-js至v0.1.1

  • 升级依赖的uglify-js包至v2.4.6

升级fis-command-release至v0.9.4

升级fis-command-server至v0.6.7

  • 不同的解决方案使用不同的缓存目录,彼此不会干扰
  • 支持从环境变量中读取 FIS_SERVER_DOCUMENT_ROOT 变量作为server的文档根目录

升级fis-kernel至v1.9.2

  • 支持从环境变量中读取 FIS_TEMP_DIR 变量作为fis的缓存目录
  • 不同的解决方案使用不同的缓存目录,彼此不会干扰

升级fis-packager-map至v0.0.9

  • 修复资源不入表时打包引用会访问的bug

1.5.6 / Wed Nov 06 2013

升级fis-kernel至v1.9.0

注意,这可能是一个需要注意的升级,有一定的兼容性问题。
  • 在js中使用__inline()语法来嵌入资源时,如果被嵌入的文件是一个 文本文件,并且文件的 isJsLike 不为true的话,则会把文件以字符串的形式嵌入到js中。比如:

    __inline('a.js');                //embed another js file
    var html = __inline('a.html');   //embed html content
    var css = __inline('a.css');     //embed css content
    var txt = __inline('a.txt');     //embed text content
    var img = __inline('a.png');     //embed image

    编译后得到:

    alert('this is content of a.js');                //embed another js file
    var html = "<h1>the content of a.html</h1>";   //embed html content
    var css = "body{\n    color: red;\n}";     //embed css content
    var txt = "hello world\nthis is the content of a.txt";     //embed text content
    var img = 'data:image/gif;base64,R0lGODlhDgGBALMAAGBn6eYxLvvy9PnKyfO...Jzna6853wjKc850nPeoYgAgA7';     //embed image

    这种修改会 影响到前端模板的个别使用情况,你当前使用前端模板时,如果把模板文件的属性标记为 isHtmlLiketrue 的话,会导致编译得到的模板函数变成了字符串插入到js中,请根据情况适当修改这样的配置,有问题可以在issues中留言。

  • 添加 .vm 后缀为文本文件,并且 isHtmlLike 为true,vm文件是velocity模板引擎文件的常用后缀。

1.5.5 / Tue Nov 05 2013

升级fis-command-release至v0.9.3

  • 修复fis release命令的 -r 参数指定了项目根目录之后读取配置文件路径错误的bug

1.5.4 / Tue Nov 05 2013

升级fis-command-release至v0.9.2

  • 支持在deploy阶段给isHtmlLike文件的</body>前自动插入livereload.js脚本,从而告别插件

1.5.3 / Thu Oct 31 2013

升级fis-kernel至v1.8.19

升级fis-postpreprocessor-jswrapper至v0.0.8

  • 修复preprocessor插件中不能插入内置require语法的bug,内置编译语法被修改为<<<require:path>>>
  • jswrapper插件支持template参数

settings

$ vi path/to/project/fis-conf.js
fis.config.merge({
    settings : {
        postprocessor : {
            jswrapper : {
                template : 'define("${id}", function(require, exports, module){ ${content} });',
            }
        }
    }
});

1.5.2 / Thu Oct 24 2013

升级fis-kernel至v1.8.17

  • 修复css中url(xxx )代码xx之后有空格的bug

1.5.1 / Thu Oct 24 2013

升级fis-command-release至v0.9.1

  • 使用fork版的livereload-server

1.5.0 / Fri Oct 18 2013

升级fis-command-release至v0.9.0

  • 支持发布前替换文本内容,例如:
fis.config.set('deploy', {
    d1 : {
        to : '../output-1',
        replace : {
            from : 'http://www.online.com',
            to : 'http://www.offline.com'
        }
    },
    d2 : {
        to : '../output-2',
        replace : {
            from : /(http:\/\/www)\.online\.(com)/g,
            to : '$1.offline.$2'
        }
    }
});

1.4.19 / Thu Oct 10 2013

升级fis-command-release至v0.8.12

  • 修复deploy的include、exclude匹配的是file.subpath的bug,应该是匹配file.release

1.4.18 / Thu Oct 10 2013

升级fis-packager-map至v0.0.8

  • 打包css时删除多余的@charset标记。

1.4.17 / Sun Oct 06 2013

升级fis-kernel至v1.8.16

  • 不强制map.json的useHash属性为false,交由roadmap.path配置决定。

1.4.16 / Mon Sep 30 2013

升级fis-kernel至v1.8.15

  • 修复url中有hash路径时识别不到文件的bug

1.4.15 / Fri Sep 27 2013

升级fis-command-release至v0.8.11

升级fis-optimizer-png-compressor至v0.0.3

升级fis-spriter-csssprites至v0.1.4

  • 修改 fis release -C <path> 参数为 fis release -f <path>
  • 升级压缩器插件,减少文件体积,提升安装速度

1.4.14 / Thu Sep 26 2013

升级fis-kernel至v1.8.14

  • html不会自动添加对useMap为false的同名文件的依赖

1.4.13 / Wed Sep 25 2013

升级fis-kernel至v1.8.13

  • 支持配置文件的md5连接符:

    //默认是'_'
    fis.config.set('project.md5Connector', '.');
  • 修复定义文件query属性时输出的bug

1.4.12 / Thu Sep 19 2013

升级fis-kernel至v1.8.12

  • 修复csssprite针对单文件处理之后文件发布时md5不匹配的bug

1.4.11 / Thu Sep 19 2013

  • 包装fis的系统能自动识别release\install\server三条命令

1.4.10 / Wed Sep 18 2013

升级fis-kernel至v1.8.11

  • 修复fis.uri.getId如果指向一个目录时居然会返回id的bug

1.4.9 / Wed Sep 18 2013

升级fis-kernel至v1.8.10

升级fis-command-server至v0.6.5

升级fis-command-release至v0.8.10

  • fis server clean支持使用 --include--exclude 参数来指定清除调试目录时的过滤器,例如:

    fis server clean --include template_c/**
  • fis release 支持使用 -f 或者 --file 参数制定配置文件名称,默认是 fis-conf.js,配置文件请尽量使用 fis- 作为文件名前缀,并放置到项目根目录下。例如:

    fis release --file fis-conf-dev.js

1.4.8 / Wed Sep 18 2013

升级fis-kernel至v1.8.9

  • 新增asp.NET体系下的文件识别
  • 对于不是图片也也不是文本的文件设置useCompile为false
  • 修复uglify插件报错不识别的bug

1.4.7 / Tue Sep 17 2013

升级fis-command-release至v0.8.9

  • 修复超多文件时发布任务队列递归爆栈的bug

1.4.6 / Tue Sep 17 2013

升级fis-kernel至v1.8.8

  • project配置节点支持include、exclude配置,用以排除项目中不是源码的文件。用法:
//支持通配,请从项目根目录开始写起,如果配了include,则要发布的源码只匹配的文件。
fis.config.set('project.include', '/static/**');
//也支持正则
fis.confis.set('project.exclude', /\/_debug\//i);

1.4.5 / Tue Sep 17 2013

升级fis-postprocessor-jswrapper至v0.0.6

  • 支持模板包装方式,配置为:
//${content}作为源码替换的标记
fis.config.set('settings.postprocessor.jswrapper.tempalte', '!function(){${content}}();');

1.4.4 / Sun Sep 15 2013

升级fis-kernel至v1.8.7

  • 修复utf8编码识别bug

1.4.3

剔除readme中的恶心品牌

1.4.2

升级fis-kernel至v1.8.6

  • 文件对象添加useCache属性,默认值是 true,如果设置为false,则不会对编译结果建立缓存。例如:
fis.config.set('roadmap.path', [
    {
        reg : '**.oncache.js',
        useCache : false
    }
]);

1.4.1

升级commander至v1.3.2

1.4.0

升级fis-kernel至v1.8.5

  • 将postpackager插件的调用时机提到map.json文件创建之前,如果有在postpackager插件中处理map.json的地方, 请谨慎升级这个版本

1.3.9

升级fis-spriter-csssprites至v0.1.3

  • 修复找不到图片时csssprite的替换处理操作,提升运行性能

1.3.8

升级fis-optimizer-uglify-js至v0.1.0

  • 升级fis-optimizer-uglify-js依赖的压缩工具uglify-js至v2.4.0

1.3.7

升级fis-command-release至v0.8.8

  • 升级chokidar依赖到最新版的0.6.3,使用后台运行watch

1.3.6

升级fis-command-server至v0.6.4

  • 支持jsp解析

1.3.5

1.3.4因为npm的问题不能发布,额外发布一个新版本

1.3.4

升级colors至v0.6.2

  • 使用原版的colors,不再使用fix的版本

1.3.3

升级fis-command-server至v0.6.3

  • 支持没有php-cgi环境时,server启动一个简单的静态资源服务器

1.3.2

升级fis-command-server至v0.6.2

  • 修复gnome下不能打开目录的bug

1.3.1

升级fis-kernel至v1.8.4

  • 修复html中使用 <link href="xx.css?__inline"/> 嵌入时的编译bug

1.3.0

升级fis-kernel至v1.8.3

  • 完善核心的报错信息

  • 在类html文件中使用link标签嵌入资源可以保留link标签上的属性给编译后的style标签。例如:

    <link rel="stylesheet" type="text/css" href="pdf.css?__inline" media="print" data-test="msg">

    编译后得到

    <style type="text/css" media="print" data-test="msg">...</style>

1.2.9

升级fis-spriter-csssprites至v0.1.2

升级fis-optimizer-png-compressor至v0.0.2

  • PNG压缩工具支持Windows X64(64位node)
  • csssprites支持Windows X64(64位node)

1.2.8

升级fis-command-release至v0.8.7

  • 将--debug参数修改为--verbose

1.2.7

升级fis-postprocessor-jswrapper至v0.0.5

  • 如果文件已经自己手写了define,则不对其进行强制包装

1.2.6

  • 默认配置开启csssprites

1.2.5

正式集成 fis-spriter-csssprites

1.2.4

升级fis-kernel至v1.8.2

删除对 fis-optimizer-html-minifier 的依赖, 不再压缩html

  • 区分script标签的type属性,如果有type属性,而且属性值不为text/javascript,则当做html处理
  • 从核心中剔除html压缩工具,理由是:
    1. 收益非常非常小。大多数产品线线上都开启了gzip,线下压缩相当多余,最后送达到用户浏览器的html大小没差别

    2. 各种压缩选项非常危险。比如 removeRedundantAttributes 会删除 <input type="text"> 元素的type属性,虽然逻辑上是等价的,但是会导致有些css属性选择器失效

    3. removeCDATASectionsFromCDATA 压缩选项有bug,如下html:

      <script type="text/template">a<!--div--></script>

      压缩完得到:

      <script type=text/template>a<!--div</script>
    4. 就算所有压缩选项都关闭,只保留空格压缩选项,也有问题。删除空格后会影响元素间距,这会给平时开发带来困扰,因为平时开发fis release通常不会加 --optimize 参数,等到上线才会加上,一旦加上,却和开发中的效果不一致,这是非常郁闷的。

    5. 对于特别留恋html-minifier的同学,不要桑心,它还在npm上,只是不是fis内核提供而已,要想使用它,你需要:

      # 安装它
      npm install -g fis-optimizer-html-minifier

      再在项目的配置文件里使用它就可以了:

      fis.config.set('modules.optimizer.html', 'html-minifier');

1.2.3

升级fis-kernel至v1.8.1

升级fis-optimizer-html-minifier至v0.0.6

  • 修复roadmap.path的release中出现多个'//'的时候被替换为空字符串的bug
  • 修改html压缩器的默认配置,不移除多余属性,因为这些属性可能是css选择器需要的

1.2.2

升级fis-kernel至v1.8.0

  • fis.compile方法支持对不存在的文件对象进行编译,不过没有缓存

1.2.1

使用fis-optimizer-png-compressor作为png图片压缩插件
  • 图片压缩支持pngcrush和pngquant压缩器选择,默认为pngcrush,如果要切换为pngquant,可在配置文件中设置:

    fis.config.set('settings.optimizer.png-compressor.type', 'pngquant');

    或者:

    fis.config.merge({
        settings : {
            optimizer : {
                'png-compressor' : {
                    type : 'pngquant' //default is pngcrush
                }
            }
        }
    });

    pngcrush压缩会保持原来的色彩位数,如果原图片的色彩超过256色,在ie6下背景无法透明,会出现灰色的填充色背景。pngquant会强制把各种png图片压缩为png8格式,因此对于png24的图片压缩后会出现一定的质量折损(基本都是可以接受的),对于需要兼容ie6的产品线推荐使用pngquant作为压缩器。

1.2.0

升级fis-optimizer-pngcrush至v0.0.6

  • 修复小于1k的png图片压缩bug

1.1.9

升级fis-kernel至v1.7.9

  • 支持roadmap.path配置指定文件不经过编译处理,例:

    fis.config.merge({
        roadmap : {
            path : [
                {
                    reg : '**.js',      //所有的js文件
                    useCompile : false  //不要经过编译处理
                }
            ]
        }
    });

1.1.8

升级fis-command-release至v0.8.6

  • deploy支持 subOnly 参数,支持只发布子目录的需求,例如:

    fis.config.merge({
        deploy : {
            local : {
                from : '/static',
                to : '../output'
            }
        }
    });

    如果执行 fis release -d local,则把编译后的 /static 目录复制到 ../output 中,得到 ../output/static,添加 subOnly 参数后:

    fis.config.merge({
        deploy : {
            local : {
                from : '/static',
                to : '../output',
                subOnly : true
            }
        }
    });

    如果执行 fis release -d local,则把编译后的/static的 子目录 复制到 ../output 中,得到 ../output/**

1.1.7

升级fis-kernel至v1.7.8

升级fis-command-release至v0.8.5

  • 允许没有pack配置仍然进入打包逻辑
  • 修复打包处理阶段不能修改内容的bug
  • .ico文件默认不做hash输出

1.1.6

升级fis-optimizer-pngcrush至v0.0.6

  • 修复pngcrush压缩压缩时图片不是png格式的bug

1.1.5

升级fis-optimizer-clean-css至v0.0.8 升级fis-optimizer-pngcrush至v0.0.4

  • 升级clean-css依赖的版本至v1.0.12,并且不允许clean-css处理@import标记,由fis接管
  • 升级node-pngcrush版本至v0.0.6,超强的压缩效果

1.1.3

升级fis-kernel至v1.7.7

  • 修复无后缀文件的处理失败的bug

1.1.2

升级fis-command-server至v0.6.1

  • 采用spawn的detached参数技术替代实现nohup功能

1.1.1

升级fis-packager-map至v0.0.7

  • 修复打包配置不支持单独的正则bug

1.1.0

内置fis-optimizer-pngcrush插件

  • 推出png图片自动压缩功能

1.0.10

升级fis-kernel至v1.7.5

  • 修复文本文件缓存处理bug

1.0.9

升级fis-kernel至v1.7.4

升级fis-command-release至v0.8.4

  • 支持对图片进行pipe处理和缓存控制,为图片压缩做准备
  • 修复新建文件没有添加文件监听的bug

1.0.8

升级fis-kernel至v1.7.3

  • 修复fis.util.clone的bug

1.0.7

升级fis-kernel至v1.7.2

升级fis-command-release至v0.8.3

升级fis-packager-map至v0.0.6

  • 自动上传限制了并发数,一次最多只开启5个并发的上传请求

  • 调整了打包策略,例如:

    fis.config.merge({
        pack : {
            'static/pkg/ui.js' : ['widget/**.js', 'components/**.js'],
            'static/pkg/others.js' : '**.js'
        }
    });

    如果在项目中,有a.js依赖了widget/b.js的话,在 1.0.6 或以前版本,会在吧 a.js 合并到 others.js 的时候,就近将 widget/b.js 也并入到 others.js(很明显,widget/b.js也符合others.js包的合并约束条件) 。1.0.7以后,将不会做这样的处理,而将 widget/a.js 合入到 ui.js 中。

1.0.6

升级fis-kernel至v1.7.1

  • roadmap.path支持使用 useMap 指定文件是否入map.json表。用法:

    fis.config.merge({
        roadmap : {
            path : [
                {
                    reg : '**.png',
                    useMap : true
                },
                {
                    reg : 'test/**',
                    useMap : false
                }
            ]
        }
    });

1.0.5

升级fis-kernel至v1.7.0

升级fis-packager-map至v0.0.5

  • 用户可以使用namespaceConnector配置节点来定义命名空间连接符,默认为“:”。用法:

    fis.config.merge({
        namespace : 'common',
        namespaceConnector : '/'
    });