magix-combine
Version:
合并Magix View的html,js,css成一个js文件,并检测html,js,css中可能存在的问题
907 lines (741 loc) • 32.2 kB
Markdown
## 3.12.1
1. 修正双`@`转义时添加到依赖中被解析的`bug`
## 3.12.0
1. 优化依赖项的处理,对于组件添加依赖,对于其它`view`则在用到时才加载
2. 配置化是否延迟执行`view`中的依赖项
## 3.11.60
1. 模板中`optional chaining`支持
## 3.11.59
1. 更新依赖
2. 修改部分提示的颜色,增加文件路径的提示
## 3.11.58
1. 更新依赖
2. 修正`node`升级处理`url`去除末尾字符的问题 https://github.com/nodejs/node/pull/42196 https://en.wikipedia.org/wiki/C0_and_C1_control_codes
## 3.11.57
1. 更新依赖
## 3.11.54
1. 降级`less`
## 3.11.53
1. 修正`mx-view`带`?`的情况
## 3.11.52
1. 依赖升级
2. 属性支持`?`及`??`,减少`if`带来的潜在问题
## 3.11.51
1. 删除`log`
## 3.11.50
1. 更新依赖
2. 修正`css`动画样式未能正确处理`name`的`bug`
## 3.11.49
1. 标签匹配检测使用宽松的行号规则
## 3.11.47
1. 修复`cssnano`
## 3.11.46
1. 降级`string-width`模块
## 3.11.45
1. 依赖升级
2. 提供`样式文件`转换后的唯一模块名
## 3.11.44
1. 支持`css`的`@property`
2. 升级依赖
3. 修复`configs.revisableStringPrefix`漏配置
## 3.11.43
1. 修复`</span\n>`闭合标签可以换行 的问题
## 3.11.42
1. 提供获取`config`的功能
## 3.11.41
1. 调整静态节点属性的`id`生成
## 3.11.40
1. 改进对项目名称的处理
2. 改进静态节点、静态属性唯一`id`的生成
## 3.11.39
1. 修复`js-module-parser`出错时未抛出文件路径的问题
2. 修复处理`script`中`html`片断时,提示路径是绝对而非相对路径的问题
## 3.11.38
1. 修复模板字符串嵌套的情况下重复处理的`bug`
2. 修复`typescript`对于`<div id="${id}"></div>`和`<div></div>`,在typescript中分别叫`TemplateExpression`和`NoSubstitutionTemplateLiteral`,而我只处理了`TemplateExpression`的`bug`
## 3.11.37
1. 修复代码重复`bug`
## 3.11.36
1. 切换语法解析到`typescript`
2. 更新依赖
## 3.11.35
1. 增加`tmplSnippetInScript`选项,埋点时遍历`script`代码查找里面的`html`片断
## 3.11.34
1. 生成`mxe`时带上`mxo`当前`view`的`id`
2. 配置`mxp`前缀的`web components`
## 3.11.33
1. 支持清除配置
## 3.11.32
1. 支持清除配置
## 3.11.31
1. 生成的模板函数使用`var`声明变量
2. 支持`webcomponents`
3. 去除不用的`sass`依赖
4. 更新依赖
## 3.11.30
1. 升级依赖
## 3.11.29
1. 调整`css`选择器生成规则,加入文件名称。
## 3.11.28
1. 修正`KISSY`下变量与模块顺序不一致问题
## 3.11.27
1. 修正事件对象是一个空对象`{}`时,解析错误的`bug`
2. 支持属性中`<>`字符
3. `snippet`文件读取同步变异步
4. 增加不分析依赖的功能
## 3.11.26
1. 移除内置的组件配置统一在组件里实现
## 3.11.25
1. 添加缺少的`pId`参数
## 3.11.24
1.增强自定义标签的参数透出
## 3.11.23
1. 增强自定义标签的参数透出
2. 更新依赖
## 3.11.22
1. 更换标签属性解析使用解析器
2. 修正`quick`模板`for`循环条件的识别
3. 增加`mx-diff`属性强制更新
4. 修正局部样式在压缩时,与全局冲突的问题
5. 修正`mx-view`参数的提取
6. `css`增加`:global()`和`@global{}`
7. 升级依赖
8. 发布模式下彻底关闭检测
9. 标签匹配换成语法解析
10. 调整`quick`模板非输出语句的处理
11. `css`支持变量输出:`.color--red,.color-pink`,`html`中使用`class="color--{{=variable}}"`
## 3.11.21
1. 提示信息修改
## 3.11.20
1. 修正配置是函数的情况
2. 去除生成的模板函数中多余的空格
3. 修正绑定表达式在属性中间,漏识别其它属性的问题
## 3.11.19
1. 调整`bare`及其它文件嵌入的识别
2. 修复组件`tag`配置失效的问题
3. 完善自定义标签属性的处理
##3.11.18
1. 修正全局样式的处理
2. 文件`bare`前缀,把文件内容原封不动的放在占位点
## 3.11.17
1. 更新依赖
2. 全局样式不再提示
3. 引用文件增加`raw`指令
4. 双向绑定表达式增加`magixUpdaterBindExpression`配置项,默认启用
5. 精简`galleries`配置
6. 拆分组件配置文件读取逻辑
7. 调整组件配置文件与`magix-combine`的配置优先级顺序
8. 扩充`view`参数属性的简写,修复双向绑定时参数的识别
9. 修正`@`属性转义情况下未更新模板的`bug`
10. 修正`input`配置了`type`不生效的`bug`
## 3.11.16
1. 修正绑定表达式的处理(其它编译工具会去掉括号及添加空格等)
## 3.11.15
1. 修正标签匹配时的提示
2. 修正`html`的解析
## 3.11.14
1. 修正`if`条件的提取
## 3.11.13
1. 强制标签配对检查
2. 标签配对检查需要多次
3. 调整旧模板的检测
## 3.11.12
1. 模板中支持`this`传递当前整个数据对象
2. 调整`js`代码的翻译,支持`wrap(require('module'))`的模块处理
3. 调整旧模板的处理,方便后期移除
4. 修正`quick`模板的翻译
5. 保留`mx-is`,`mx-as`,`mx-type`,`mx-name`等
6. 重写`html parser`
7. 关闭`Service Checker`
8. 增加`<mx-link>`及`<mx-router>`内置组件,更方便的书写页面跳转
9. 输出消息带前缀
10. 修复`art`中`if`语句的识别
11. 调整`vnode`的生成:提前`decode`
12. 修复模板`raw`前缀,新增`bare`前缀
## 3.11.11
1. `each`语句支持`each list as value key last first`开始与结束`2`个布尔值
2. 增加`concurrentTask`配置,并发情况下,生成的`key`是不固定的,可把该值设为`1`来确保生成相同的`key`
3. 支持`module`文件
4. 当`gallery`路径不存在时,使用开发者提供的配置而非抛错
## 3.11.10
1. 调整全局变量的引用方式
2. 修正`$$ref`的问题
## 3.11.9
1. 调整引用数据的生成
## 3.11.8
1. 修复`mx-view`中相对路径的处理
2. 移除`a`标签`javascript`的提示
3. 自闭合标签不再提示
4. 修正`mx`中的样式识别
5. 修正`art`行号的处理
## 3.11.7
1. 调整`quick`模板参数位置
2. 调整`quick`模板`unary`属性输出
3. 修复绑定表达式的处理
4. 嵌套默认`4`层才提示
## 3.11.6
1. 兼容旧模板`mx-event`事件处理
2. 修正属性的处理
## 3.11.5
1. 兼容旧模板`mx-event`事件处理
## 3.11.4
1. 增加旧模板`mx-event`的处理
2. 关闭部分检测,如`img`,样式`url`的检测输出
3. 修正`require`正则识别
4. 支持动态`import`
## 3.11.3
1. 处理`bx-config`的`html`配置
## 3.11.2
1. 增加旧模板的识别
2. 完善`a`标签`javascript`的提示
## 3.11.1
1. 标签分析对于有内容的标签,内容输出子节点对象
2. `require`或`import`支持样式
3. 临时支持旧模板的处理
4. 重构部分配置,如`art`及`underscore`的配置
## 3.11.0
1. 增加`quick`模板
2. 改进布尔及`@`属性的表达式处理
3. 增加`config`默认全局变量的配置
4. 修正属性及内容在有模板命令语句的情况下,识别参数不正确的问题
5. 完善`@`在属性内容中的处理
6. 删除`native`前缀的标签处理
7. 循环支持省略`as`及后面的变量语句
## 3.10.9
1. 修正`art`中的`if`语句翻译
2. 完善`js`与`css`的`start`和`end`钩子,完善`d.ts`文件
3. `view`参数中支持相对路径
4. 调整模板函数的生成,减少方法调用
5. 完善绑定语句的`art`模板追踪
6. `art`中支持`set`设置变量
7. 属性内容支持`@`转换路径
8. 完善模板中的解构赋值
9. `js-acorn`保留单行注释
10. 增强`mx-event`事件参数的提示
## 3.10.8
1. 修正配置组件的处理
## 3.10.7
1. 修正静态节点相同的识别
2. 支持组件目录增加`_config.js`文件进行配置
3. 依赖升级
## 3.10.6
1. 修正自身依赖的识别问题
2. 移除事件前缀添加时,无法访问到的代码
## 3.10.5
1. 重构`art`中的`if` `for`语句
2. 解决`view`中的与`js`依赖同名及循环依赖的问题
3. 同一`package`下的模块翻译成相对路径
4. 支持自定义排除`view`路径到`js`文件中的`require`
5. 依赖升级
## 3.10.4
1. 对于`view`的绑定,需要带上属性,为以后的多绑定提前做准备
2. 避免组合组件,未来不再有组合组件
3. 支持`slot`
4. 属性支持`native-`前缀
## 3.10.3
1. 绑定表达式建议写法`{{:expr&{range:[20,100],number:true}}}`
2. 改进`mxe`属性的计算方法
3. 改进`mxv`的识别及计算、使用方法
## 3.10.2
1. 绑定表达式修饰对象支持参数,如`{{:expr{number:true}}}`或`{{:expr&rules}}`
## 3.10.1
1. 尝试从连续的右大括号中识别出`art`标识
2. 完善绑定中的对象识别
## 3.10.0
1. 修正`@`数据的引用,原始类型也要用占位符保持数据类型
2. 绑定表达式中,变量使用`@`进行数据类型的保持及传递
3. 增加`global.style`的写法
4. 重新整理`双向绑定`的实现
## 3.9.0
1. 修正`@`转义规则
2. 完善全局变量
3. 修正标签嵌套识别错误的`bug`
4. 调整`galleries`的规则
5. 不兼容的配置项升级
6. 修复绑定表达式,含有数组无法解析变量的`bug`
7. 全面升级`mx-view`在`dom diff`下的更新方式
8. 修复模板局部变量声明与全局一致导致分析出错的问题
9. 对于生成的`tmpl`函数也需要调用`compileTmplCommand`钩子
10. 调整`art`模板`each`翻译的代码
## 3.8.15
1. 修正`scoped.style`中有文件不存在导致死循环的`bug`
2. 修正子模板拆分时,`textarea`分析漏掉`value`属性的`bug`
## 3.8.14
1. 调整`let`与`const`变量的遍历处理
2. 可配置的是否分析模板中的静态节点
3. 不启用`magix updater`的情况下
## 3.8.13
1. 模板中支持`let`与`const`的声明
2. 配置对象改进自定义标签的配置
3. 修改`art`模板的编译
4. 改进`mxv`属性
## 3.8.12
1. 修正`css-url`缓存清理的`bug`
2. 修正配置项兼容的`bug`
3. 新增`umd`和`acmd`模块包装
4. 增加`mxv`属性,用于检测节点下是否包含带有参数控制的`view`
## 3.8.11
1. 虚拟节点情况下支持字符串拆分时的不变变量
2. 修正`md5`模板字符串包含`#`的`bug`
3. 降级`less`
## 3.8.10
1. 模板生成函数时,`viewId`作为参数传递,提升生成`html`的性能
2. 增加静态标签的检测,用于`dom diff`时快速跳过
3. 修复`parentKey`透传错误的`bug`
## 3.8.9
1. 升级依赖
2. 修正模板中变量压缩与全局变量冲突的问题
3. `cssnano`默认不压缩字体,看这里:[https://github.com/ben-eb/cssnano/issues/430](https://github.com/ben-eb/cssnano/issues/430) 看这里:[https://github.com/ben-eb/cssnano/issues/439](https://github.com/ben-eb/cssnano/issues/439) 看这里:[https://github.com/less/less.js/issues/3160](https://github.com/less/less.js/issues/3160)
4. 精简`debug`模式下的模板生成函数
## 3.8.8
1. 去除在`view`中设置`global`的样式添加到全局的处理,只在当前`view`有效
2. `textarea`中的内容还是要转义
3. 放宽标签闭合的检查,对于普通标签也支持`<tag/>`自闭合的写法
4. 所有的标签都应该闭合,包括像`input`这样的标签
## 3.8.7
1. 修正`parentKeys`未透传的`bug`
2. 修正`@`属性前有其它属性未还原的`bug`
3. `textarea`中的内容不能转义输出
4. 明确模板编译的原始前缀,非`magix`模板现在需要明确添加`raw`前缀
5. 调整生成的模板函数
6. 内置全局变量,方便开发
## 3.8.6
1. 使用增量更新时,直接把字符串模板变成函数
2. 提示带大写字母的标签统一使用小写
3. `types`中`tmplArtEngine`默认为`true`
## 3.8.5
1. 修正模板文件处理时,命令与注释还原顺序不正确的`bug`
2. 修正事件写法检测时,如果事件内有命令语句,因情况太复杂,故不再检查
## 3.8.4
1. 修正`postcss`的提示问题
2. 修正`art`绑定空表达式的提示问题
3. 修正事件参数识别错误的问题
## 3.8.3
1. 预防`class`处理出错
2. 修正`mx-include`标签
3. 调整`native.tag`的属性处理
4. 调整`js`代码及`html`编译前的逻辑
5. 修正`mx-include`的参数传递
6. 增强`revisable string`,增加分组写法`@{group#descriptor.text}`
8. 增加`acorn spread object`和`acorn await async`插件
9. 重构模块依赖分析部分,增加`es6 module`
10. `js wrapper`增加`module`,可以使用`es6`的模块加载
11. 重命名配置项`tmplFolder`=>`commonFolder`,`srcFolder`=>`compiledFolder`
12. 修复`removeFile`不能删除`compiledFolder`中文件的`bug`
13. 调整模板中`view`相对路径的处理,不需要添加`@`前缀
14. 统一模板中的`view`提前打包到`js`文件中的依赖处理
15. 调整`magix`模板的识别
16. 模板中增加`this`的识别及处理
17. 调整组件的输出,定义复合型组件
## 3.8.2
1. 严格`each`及`forin`中的`as`语句
2. 代码去`this`检查,已没必要
3. 增加下拉框及轮播组件的自定义标签配置
## 3.8.1
1. 修复`view`参数传递
2. 修复获取模板命令信息死循环的问题
## 3.8.0
1. `art`模板出错时定位原始写法及位置
2. 增强样式按名称集合获取
3. 重构自定义标签引用组件,增加第三方的定义
4. 修正`js-min`的压缩回车问题
5. 调整`art`模板的配置
6. 修改在`art`模板下的提示
7. 修正`art`在事件做为最后一项大括号识别错误的问题
8. 默认开启`art`模板
## 3.7.6
1. 更新依赖
2. `art`模板出错时提示出错的行
3. 增加获取某个文件的依赖项
## 3.7.5
1. 移除原生模板的语法检查
2. 修复读取`art`配置对象错误的问题
3. 增加`art`模板指令配对检查的功能
4. 修复移除缓存时全局及`scoped`样式对象不存在的问题
## 3.7.4
1. 保留`mx-dep`属性
2. 增加类`art`模板的翻译
3. `mx-tag`升级为自定义标签
4. 修复解析`html`未处理注释的问题
5. 修复`textarea`绑定带参数的问题
## 3.7.3
1. `mx-tag`在找不到时,不再清空而是输出有用的调试信息
2. 减少`revisable string`的匹配范围
3. 修复生成组件时,`tag`对应的属性不正确的`bug`
4. 增加`mx-vframe`标签,不再推荐使用`mx-view`标签
5. 支持原生`es6`写法
## 3.7.2
1. 属性重复检测所有标签
2. 模板中对象属性可选的生成保护表达式,防止数据出错
3. 与`htmlminifier`同样的配置,保留命令语句前后的空白
## 3.7.1
1. `revisable string`前缀可配置
2. 完善`view`参数的处理,增加样式引用的处理
## 3.7.0
1. 重命名`mxTagViewsRoot` => `mxGalleriesRoot`
2. 精简配置项
3. 增强`mx-tag`的处理
4. 增加`<app.views.default>`标签的处理
5. 部分支持不检测的注释,注释文本去除前后空格
6. 检测`js`代码中的循环嵌套时,支持配置指定嵌套的层数`jsLoopDepth`
7. 更宽泛的`revisable string`
## 3.6.4
1. 修正全局样式文件的读取
## 3.6.3
1. 样式支持`sass`文件
2. 完善`tmpl-naked`,增加编译、单文件模板标签支持`lang`
3. 修复单文件样式的处理
## 3.6.2
1. 修正模板语法检测只在指定`magix updater`的情况下才检测
2. 调整`tmpl.js`中模板指令的处理
3. 修正非`debug`或不生成`css sourcemap`时,「全局」样式输出非数组的形式
## 3.6.1
1. 修正模板中事件`revisable string`的转换`bug`
2. 默认`cssnano`压缩时,禁用`autoprefixer`
3. 增加`css`的`sourcemap`功能,虽然提供该功能,但是一些文件映射的信息不太正确,有时间再处理吧
4. 内置`autoprefixer`
5. 修复`ssid`的生成,需要添加`\x03`前缀
6. 修复`js-require`的位置信息的生成
## 3.6.0
1. 修改`checker`配置
2. 调整配置项,不兼容
3. 调整内置`mx-tag`标签的处理
4. 调整`mx`开头的标签匹配算法
5. 修正模板命令未压缩情况下,函数参数在模板拆分不正确的`bug`
6. 修正样式引用在`mx-view`属性的节点中处理不正确的`bug`
7. 前置模板`js`语法检查,更精准的报错位置
8. 支持文件内注释的方式指定检测或不检测某些内容
9. 使用`include`共用某些重复的代码片断
10. 增加`revisable string`功能
11. 调整`md5`算法,自行压缩
12. 调整`scoped`样式的处理方式,可通过`scoped.style`或具体路径的文件引用
13. 增加`compileCSSEnd`钩子,方便接入如`postcss`等后处理器
## 3.5.8
1. 修改文件识别正则
## 3.5.7
1. `css-url`改成异步
2. 增加模板编译,比如支持`haml`或`pug`
3. 重命名`compileBeforeProcessor`=>`compileJSStart`及`compileAfterProcessor`=>`compileJSEnd`
4. 支持模板文件除`html`外的扩展名
5. 移除`compressCss`配置项,统一使用`debug`
6. 全局化`@keyframes`及`@font-face`
## 3.5.6
1. 修复模板中控制命令的压缩
2. 修复标签配对的处理
## 3.5.5
1. 修改`ForOfStatement`提示
2. 修正空属性的获取。`tmpl-parser`中,属性`value`判断松散
3. 代码分析支持模板字符串
4. 修复把`html`中的`view`依赖打包到`js`中时,不同的包,处理相对路径错误的问题
5. 增加`mx-beid`,用于解决界面刷新后,校验绑定表达式
6. `view-params`参数保留属性名称
7. 修复`view`依赖识别
8. 修复`KISSY`版本的包装及模块依赖顺序
## 3.5.4
1. 增加`mx-view`标签进行简写`view`
2. 增加属性中`<%@expr%>`的检测
3. 移除事件对象`<%@expr%>`的检测,支持事件中`@`数据对象的写法
4. 开发模式下不压缩命令语句
5. 增加`debug`模式
## 3.5.3
1. 修复禁用`updater`的情况下不分析子模板
2. 修复标签配对检测时,要使用配置的`tmplCommand`
3. 增强模板存储,检测模板中已有的占位符
4. 增加特殊字符的检测,明确不支持的范围
5. 加强事件写法的提示
6. 不能排序`class`,因为命令被占位符占位,如果排序会导致占位错乱,然后结果不正确
7. 增加实验性质的`addTmplViewsToDependencies`,可把模板中的固定`view`做为依赖提前加载,减少白屏时间
8. 更换依赖,`colors`=>`chalk`
## 3.5.2
1. 调整`html`压缩,尽可能的减少`html`字符串
2. 修复`mx-view`的识别,`view`明确刷新时才把内容当成自己的节点
3. 修复`each`及`forEach`的参数检测问题
4. 增加`map`及`filter`等常用方法调用作为循环检测的点
5. 增加实验的多绑定,因事件合并,所以不支持条件语句如`<%if(a){%> <%:user.name%> <%}%> <%:user.nickname%>`,要么同时绑定,要么同时不绑定,无法做到`a`为`false`时只绑定`nickname`
6. 修复`tmpl-partial`中删除`guid`后,子模板替换时,偏移量计算错误的问题
## 3.5.1
1. 增加移除缓存的`api`,适应更多的打包工具
2. 绑定表达式分析不出来时,在模板中`throw`错误,更明显的提示开发者
3. 增强模板中代码的编译
4. 不再对自闭合标签做特别的处理,比如增加`/>`进行闭合
5. 增加标签闭合检查,虽然`html-minifier`会自动处理,但处理的结果并不理想,因此强制标签正确匹配闭合
## 3.5.0
1. 模板分析弃正则用`parser`
2. 模板输出对象增加`file`属性,用于`debug`模式下的提示
3. 单个模板增加`const`及`global`的配置
4. 增加`updateby`分析模板,根据指定的`key`进行模板的拆分处理
## 3.4.4
1. 重构`extractUpdateKeys`
2. 重构压缩模式下更精简的样式选择器
3. 修复样式引用路径不对的`bug`
4. 改进样式`ref`引用选择器算法
5. 增加默认支持`ts`后缀的文件
6. 增加模板中代码调用第三方编译前需要加括号处理,否则对象会当成代码块
7. 修复`mx-view`的局部刷新,当属性或模板需要刷新时,都需要重新渲染`view`
8. 增加模板函数中使用`arguments`
9. 增加`iframe`添加`sandbox`的提示
## 3.4.3
1. 修复模板中使用函数,需要把函数参数做为变量声明,使用形参的地方增加使用标识
2. 修复子标签匹配排除反斜杠的问题
## 3.4.2
1. 修正`css`中`font-face`的识别
## 3.4.1
1. 增加`#loader=type`配置,可对部分文件做特殊处理
2. 增加`<%: user.name <change,input> {refresh:true}%>`写法
3. 增加输出上下文中`tmplMxViews`,用于识别模板中的固定`view`
## 3.4.0
1. 增加`checker`配置
2. 增强模板事件的处理,只有`magix`配套的模板才进行相应的事件对象识别及处理
3. 改进`a`标签的`javscript:;`写法提示
4. 处理模板命令语句在压缩的情况下提示原始语句
5. 重构模板部分的代码
6. 升级依赖`require`分析的代码,删除不必要的正则
7. 重构`css`中`@`规则的处理
8. 增加`this`别名检测,确保统一
9. 重构标签属性识别
10. 模板增加`magix`前缀进行子模板分析与处理
11. 非兼容性升级:`log`=>`progressbar`,`check`和`checkCss`=> `checker`
## 3.3.3
1. 标签内`onclick`写法不再提示
2. 修正`KISSY`下需要移除`require`语句
3. 更精确的识别`bag`参数
4. 增强数据对象的引用识别
## 3.3.2
1. `likeObject`修正对数字的识别
2. 数据绑定传递参数规范为`object`
3. 完整的`escape html`,包含实体及十进制和十六进制
4. 解决在事件对象中使用实体单、双引号导致字符串不正确的`bug`
5. 提示模板中不必要的`style`与`script`标签
6. 提示模板中不必要的事件绑定及其它危险的设置
7. 修正`@font-face`中的`font-family`,不考虑名称中出现的单、双引号
8. 修正`@keyframes`中的名称,不考虑名称中出现的单、双引号
## 3.3.1
1. 解决绑定传参带引号字符时,解析错误的`bug`,解决方案:绑定必然在属性中,可使用`"`及`'`来解决
2. 修复在`mx-*`事件中传递字符串参数,包含引号的`bug`
3. 检测事件写法并提示,如不能缺少小括号,参数使用对象的形式等
4. 重构模块检测代码,把检测代码集中在`checker-tmpl.js`中
## 3.3.0
1. 修复`js`检测时的逻辑表达式赋值
2. 修复保护表达式是成员对象时,路径顺序不对的`bug`
3. 增加`js`注释`mc-uncheck`来应对`magix-combine`某些无法正确检测的情况
4. 单文件样式标签增加`lang`属性
5. 修复单文件中,样式引用路径的`bug`,`less`或`scss`需要指定对应的文件路径才能算出合适的相对路径
6. 增加在编译期间拦截命令窗口输出的功能,更友好的进度条
7. 增加`a`标签在新窗口打开时,提示添加`rel="noopener noreferrer"`属性
8. 重构(`tmpl-attr`)、重命名(`js-loader`->`js-wrapper`)
9. 如果未提供`css`选择器前缀,自动生成`css`选择器前缀,不再固定
10. 增加多个循环嵌套的检测
11. 改进样式提示(属性及伪类优化)及代码数据检测(一元表达式)
12. 改进以`@`开头的路径转换,支持`@@`转义`@`
13. 调整样式伪元素的算法及选择器提取算法
## 3.2.3
1. 修复方法调用时数据对象的识别,`CallExpression`
2. 增加编译模板中`js`的功能,更方便的使用`es6`
3. 增加模板中模板命令变量压缩的功能,网上的`jsmin`处理字符串时有bug,拿到本地修改
4. 修复只有一个绑定属性时,无法绑定上的`bug`
5. 增加模板中箭头函数的支持
6. 增加检测js代码的功能,目前主要检测数据请求与数据使用
7. 修复处理原始模板时,读取标签会匹配到注释的`bug`
8. 删除模板`:subs`与`:keys`的输出命令
## 3.2.2
1. 统一`view-attr`中大写为小写
2. 提示样式文件中不要写`@import`规则
3. 增加`mx-owner`属性
## 3.2.1
1. 检测模板中未声明的变量
2. 增加原始模块`id`
## 3.2.0
1. 独立检测功能
2. 调整`d.ts`中`loaderType`
3. 调整样式选择器不推荐的算法
4. 拆分`checker`
5. 提示在模板中尽量不要使用`function`
## 3.1.4
1. 调整`css`选择器算法,更精准的指出不符合要求的选择器
2. 样式中重名的`class`在输出时,添加`.`前缀
3. `loader`增加`none`不添加任何包装
4. 默认不再输出样式中匹配到的`url`及模板中匹配到的`img`路径
5. 对无法分析、分割的模板文件进行提示,引导开发者自己解决问题
6. 调整添加`guid`算法
7. 调整输出颜色,文件统一使用灰色
8. 修复`css-parser`未识别带私有前缀的`keyframes`的问题
9. 增加`d.ts`文件
## 3.1.3
1. 不存在的文件输出短路径
2. 修复全局样式未指定所属文件的`bug`
## 3.1.2
1. 修复绑定表达式2个的时候不提示重复的`bug`
2. 支持单个绑定表达式绑定指定的事件,如`<%:[input,blur,change] user.name%>`
3. 支持传递参数,如'<%:[input,blur] user.name {refresh,number}%>'
## 3.1.1
1. 修复全局样式被错误添加前缀的`bug`
2. 禁用日志时,最开始的进度条不输出
3. 增加`beforeProcessContent`钩子
## 3.1.0
1. `mx-view`传递的参数中,提示注意可能传递`html`片断
2. 当满足`tmpl-img`或`css-url`时,输出所在文件
3. 全新的`css-parser`,替换原来的正则处理
4. 增加样式标签规则的检测,会提示项目中未使用到标签的样式
5. 简洁的文件路径,使用模块`id`而非全部路径
6. 标记不存在的文件及样式,及时提醒可能存在的问题
## 3.0.0
1. 增加`html`默认压缩选项
2. 处理绑定参数空格问题
3. 删除`startProcessor`
4. 增加`beforeWriteFile`
5. 增加手动合并`js`文件功能,通过`'@file.js';`即可把指定文件的内容输出在当前位置,同时在被引用的文件顶部写上`'#snippet';`,指明该文件是一个代码片断,则`magix-combine`不会把这个文件写到硬盘上。`'@file.js','compile@file.js','top,compile@file.js','bottom@file.js'`
6. 删除`excludeTmplFolders`、`excludeTmplFiles`及`excludeFileContent`
7. 增加`'#exclude(define,before,after)';`标识
8. 减少大量的`log`输出为进度条
9. 修复潜在的正则问题
10. 修复模板分析变量反复赋值问题
## 2.1.0
1. 更新依赖
2. 依赖版本号配置为自动升级`bug`版本
3. 模板中方法调用,方法名称不再作为刷新依赖
4. 提供`tmplPadCallArguments`钩子,向模板中方法调用注入参数,注入的参数目前只能是模板中全局变量
5. 拆分出`tmpl-viewattr`处理
6. 增加样式检测功能,可检测项目中无用的样式,目前仅支持`magix-combine`的内置规则
7. 后期准备移除`globalCss`,请优先使用`scopeCss`,不推荐使用`全局样式`
8. 支持在模板`class`中输出的字符串替换成映射的选择器
9. 检测项目中样式:重名的、未使用到的。
10. 检测模板中使用未声明过的选择器
11. ES6、增加`let`、`const`关键字的支持
12. 支持如`input`、`img`标签不写闭合`/`
## 2.0.5
1. 增加全局的局部化处理`scopedAsGlobalCss`,增加全局样式`globalCss`方便提示
2. 增加`scoped.style`作为全局样式的局部化文件名称
3. 开放`writeFile`
4. 增加`startProcessor`钩子
5. `resolveRequire`增加`context`参数
6. 增加`afterDependenceAnalysisProcessor`钩子
7. 使用`mxv-root`虚拟根节点代替子模板分析时如果没有外层标签默认使用`div`的方案,解决`ul``li`标签拆分问题,如外层使用`ul`,子`view`循环输出`li`
8. 修复变量路径分析`bug`,旧版对`.frames[codes[keys[i].name]]`分析不正确,未能正确分析嵌套的`[]`
9. `view`传参带绑定时,使用`<%@`而非`<%=`
10. 调整`acorn`的依赖,放在外部
11. 界面变化绑定数据的表达式增加参数支持
12. 调整生成样式选择器算法,减少生成的文件内容
## 2.0.4
1. `js`解析出错,错误信息标红
2. 增加在开始或结束编译`js`内容时的钩子,方便与其它工具对接
3. 解析模板中的自定义标签时传递文件路径信息
4. 解析`mx-`开头的标签时,把`tag`改为`name`,仍然保留`tag`兼容
5. 调整单个文件的样式解析
## 2.0.3
1. 修复`view`局部刷新`bug`
2. 内部模板命令的处理
3. 修复变量提取重复的问题
## 2.0.2
1. 修复依赖未提取到的问题
## 2.0.1
1. 调整不处理的配置,增加`excludeTmplFiles`
## 2.0.0
1. 重大调整,`tmplFolder`与`srcFolder`
2. 修复变量分析bug
3. 增加变量路径输出 `<%~var%>`
4. 支持样式文件中引用其它文件中的编译名称`[ref="@../x.less:name"]`
5. 支持选择器属性`.s[a=b]`
6. 改进`keyframes`的识别
7. 修改`@`路径的识别转换
8. 增加依赖控制
## 1.3.7
1. 模板出错时的友好提示
2. 精简`mx-tag`配置
3. `encodeURIComponent`传递的`view-attr`参数,智能识别内置模板命令
4. `processContent`支持输出对象
5. 改进模板和`js`文件分析出错时的日志,提供周边代码,供快速定位
## 1.3.6
1. 支持对象属性`@`占位符
2. 支持`html`文件内获取编译后的选择器名称:`@:selector`
3. `md5`升级
4. 修复对象`key`为字符串的情况下输出`undefined`的`bug`
## 1.3.5
1. 依赖修改时编译对应的`js`文件
2. `html`压缩增加配置项
3. 固定依赖的版本号,避免依赖升级后结果和之前的不一样
## 1.3.4
1. 解决模板中不变变量的问题
2. 提高`@`文件的准确率
3. 加上`loader`后分析代码
4. 处理特殊的`tmpl`
## 1.3.3
1. 增加`Promise`的`reject`
2. 修复绑定`bug`
3. 彩色`log`
4. 路径转换可以禁用`useAtPathConverter`
## 1.3.1
1. 事件增加前缀
## 1.3.0
1. 改进数据`key`的识别
2. 修复替换内容有`$`的情况
3. 事件增加所属`view`前缀
4. 支持`view-attr`传递数据
5. 默认启用`updaterAndTmpl`
## 1.2.10
1. 改进模板变量解析
2. 模板增加`raw`前缀,不做任何处理
## 1.2.9
1. `excludeFileContent`选项,可根据文件内容决定是否排除
2. 增加`webpack`加载器
## 1.2.8
1. `outputTmplWithEvents`选项
## 1.2.7
1. 自带模板中自动识别数据key,自动识别刷新的标签
2. 修复自闭合标签无刷新`key`时,不再提供刷新信息
3. 局部刷新属性时换另外方案:存属性字符串,分析有哪些属性,更新时以分析到的属性为准
4. 增加`kissy`加载器
## 1.2.6
1. 修复`index.js`中`util.removeFileDepend`方法
2. `updater`绑定时,`checkbox`及`radio`需要在项目中处理
3. 修复跨文件压缩`css`时的问题,不能使用递增的方案,可能相同的选择器递增的值不同。使用`md5`,同内容同`key`
4. 更健壮的`css`处理,当存在内容读取时,不向全局对象添加选择器
5. 升级`md5`结果长度到`4`,因为选择器也要用
6. `css`文件中的`@`规则在启用选择器压缩的情况下也要压缩
7. 开放`css`中的背景图,`html`中的`img`标签路径处理
8. 修复内置模板`@`属性分析`class`在子模板中判断成`prop`的bug
## 1.2.5
1. 修复`.mx`文件中`css`路径问题
2. 修复`excludeTmplFolders`在单独处理文件内容时遗漏问题
## 1.2.4
1. 修复模板分析bug
## 1.2.3
1. 增加css文件中外链资源的处理
2. 增加模板中img标签的src属性处理
3. 预留对图片资源的加载,比如使用2倍图,加载webp格式等
## 1.2.2
1. 移除buildFolder,放在外部处理
2. 修改内置模板的压缩
3. 加入acorn分析模板代码
## 1.2.1
1. 针对requirejs修改amd打包方式
2. 修复标签内replace bug https://github.com/thx/magix-combine/issues/14
## 1.2.0
1. 代码重构,拆分子模块
2. 移除snippets
3. 增加mxtag处理
## 1.1.15
1. 删除onlyAllows配置项
2. combine及processFile promise化
## 1.1.14
1. 增加`.mx`后缀的支持
2. 增加`md5KeyLen`配置项
## 1.1.13
1. 依赖项明确版本,之前未明确版本,在某些情况下会出问题
## 1.1.12
1. 内置配置项:模板压缩等
## 1.1.11
1. 修复模板前缀漏掉的bug
## 1.1.10
1. 修复 outputTmplObject bug
## 1.1.7
1. 从html提取信息 https://github.com/thx/magix-combine/issues/12
## 1.1.6
1. 修复copyFile bug
## 1.1.5
1. 支持字符串内的css@命令替换 https://github.com/thx/magix-combine/issues/11
## 1.1.0
1. 删除 `@filename.css:$prefix`
## 1.0.8
1. 优化模板分析
## 1.0.5
1. 参考seajs require分析,更健壮的依赖分析