UNPKG

magix-combine

Version:

合并Magix View的html,js,css成一个js文件,并检测html,js,css中可能存在的问题

907 lines (741 loc) 32.2 kB
## 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`,解决方案:绑定必然在属性中,可使用`&quot;``&#x27;`来解决 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分析,更健壮的依赖分析