- #355 将 js 和 css 相关结果全部由 core 抛出,会影响 api 的返回值
- 升级到
tailwindcss-patch@4.0.0,采用新的内置补丁配置
- 使用新的
Tokenizer来对wxml进行词法分析获取最精确的结果, 完成 #319
- #316
- 修复原生小程序在一个
class中使用 {{x}}-{{y}} 写法造成重复转译问题。
- 升级
tailwindcss-mangle相关依赖包到3.0
- 修复
dts类型问题 #308
- 支持涂鸦小程序
- 修复 #304
- 升级到
tailwindcss-patch@3,支持tailwindcss postcss7 compat的jit模式
- 添加
cssRemoveHoverPseudoClass配置,默认在小程序平台去除:hover元素
- 添加对原生微信小程序的支持,添加
@weapp-tailwindcss/cli
- 整个项目变为
monorepo
- 去除
package.json里的optionalDependencies以减小安装依赖的大小,此时启用jsAstTool:ast-grep需要用户自己手动安装@ast-grep/napi
- 使用
htmlparser的xml模式来解析wxml - 增加
jsAstTool配置项,可选使用@ast-grep/napi来解析js ast,速度可提升1.5-2倍多左右
- Lock htmlparser2 version #268
https://tw.icebreaker.top/docs/migrations/v2
- 修复样式条件编译语法糖,uni-app 会在某些版本中破坏条件编译的注释,这时候需要这个插件去修复一下。
- 添加 uni-app-css-macro 样式条件编译语法糖相关功能
- 升级
rollup相关依赖到4.x
- 添加
tailwindcssBasedir配置项 - 异步化
postcss以及缓存还有所有的插件
- 建立缓存机制,大幅增加
vite插件的热更新速度
- mpx编译wxml属性值单引号问题 #241
- 建立缓存机制,大幅增加
webpack插件的热更新速度
- 修复由于使用
eval导致jsHandler递归处理时的ast解析错误问题。
- 添加
mergeVirtualHostAttributes的virtualHost虚拟节点支持
- 默认使用
jsEscapeStrategy的replace模式 - 重写了
wxml解析器以代替正则匹配替换的方式,以做到更加精确的匹配 - 更加精准的
customAttributes配置项,现在配置项中,使用字符串代表着,精确匹配标签或者属性,可以使用正则来匹配多个。
- 升级
tailwindcss-patch相关的依赖到^2.1.0
- 添加
jsEscapeStrategy配置项,用于切换所有的js字符串中,处理字符串和模板字面量的替换模式。 - 详细配置见 https://tw.icebreaker.top/docs/api/interfaces/UserDefinedOptions#jsescapestrategy
- 升级
tailwindcss-patch和@tailwindcss-mangle相关依赖到2.x版本
- 修复直接引用
npm包时,不出现智能提示的问题
- 拆分
@weapp-core相关的包引用 - 去除无用依赖,升级相关包到
esm格式
- 添加
disabledDefaultTemplateHandler配置项,可以禁用默认的模板标签匹配转化器
- 修复部分错误的
injectAdditionalCssVarScope注入样式 - 修复因为英语水平差,造成长久以来的拼写问题:
templete -> template
- 升级
tailwindcss-patcher到1.2.7
- 添加
jsPreserveClass配置项,用于处理tailwindcss和js转义字面量撞车的情况。 - 现在所有的默认值可以通过
weapp-tailwindcss/defaults获取到了,
- 修复带
*的js字面量,由于和tailwindcss运行时冲突,导致错误转义的问题。
- 添加
injectAdditionalCssVarScope配置项,用于tailwindcss变量区域的重新注入
- 升级
@csstools到最新版本,使用MIT-0协议 - 升级
babel相关的依赖
- 添加
wxs支持,包含内联使用和引入的转义,并添加对应的配置项 - 添加多
tailwindcss上下文的支持,用户可以在一个项目里,创建多个tailwindcss上下文,使得不同的目录,应用不同的tailwindcss策略
- 添加
cssChildCombinatorReplaceValue配置项,允许用户自定义直接子代选择器行为 - 更精细化的处理了 css 选择器的转义逻辑
- 修复class name 第一个css selector 为数字,导致的16进制选择器问题,导致小程序报错的问题,解决方案位添加首字母阻止\3转义
- 仓库改名为
weapp-tailwindcss - 添加
arbitraryvalues配置项,允许用户切换分割模式 - 使用
typedoc来生成options的文档 - 重构
mangle功能代码,添加对应的单元测试用例,现在的单元测试代码覆盖率已经提升到了99%
修复了 tarojs vue3 框架下,由于vue3产生静态节点,产生静态的html字符串,导致js转义字符串时,没有匹配到相应字符串的问题。 不过这个这个改动也导致我们在写 tailwindcss class 的时候,使用任意值,无法在里面写双引号了。 什么意思呢?
after:content-["你好啊,我很无聊"] ×
after:content-['你好啊,我很无聊'] √所以接下来会开放配置项,允许用户自行开启关闭这个问题,毕竟目前只在 taro vue3 里面出现。
- 最小支持 nodejs 版本为 16
- 增加
./webpack路径下的导出和类型,现在都可以使用xxx/webpack,xxx/vite,xxx/gulp,xxx/postcss,xxx/replace这类的方式来处理了 - 更完善的 readme.md
- 修复ts直接引入
./下的type智能提示问题
- 添加
mangle配置项,可以对tailwindcss生成的类名进行缩短以及混淆 - 添加
esm支持
- 使用
exports导出项目,去除根目录下的.d.ts - 升级
pnpmfrom v7 to v8 - 去除所有
webpack4相关的依赖 - 使用
jest测试cjs,vitest测试vite相关case - 采用
Github Action进行正式发布以及自动生成github changelog
- class选择器支持 unicode
- 重写了转义核心方法,优化性能
- tarojs 在热更新时,保存非
[jt]sx文件,比如tailwind.config.js/xx.scss文件,导致样式丢失的问题
- 去除所有的 v1 版本的插件,重构代码和更改目录,如果你还是想用 v1 插件,请锁定你的版本在
2.1.5以下。 - 去除了无用的配置项
js文件进行转义时,自动判断格式是cjs还是esm- 现在能针对
eval包裹的js脚本进行转义了 - 去除所有
mangle相关代码,相关功能现在到 tailwindcss-mangle
- 给之前的
v1版本的插件打上deprecated标记,添加对应的jsdoc - 整理目录去除
v1版本的markdown文件目录,相关转移到了website中
- 默认按照环境变量来决定是否压缩js代码,同时添加
minifiedJs配置项手动进行指定 [#164] - 修复
webpack filesystem缓存,导致的二次编译结果错误问题。这是由于启用文件缓存后,webpack二次打包时候直接使用缓存,而不去触发postcss相关插件导致的。
- 升级
tailwindcss-patch的最小版本,修复nodejs14npm preinstall hook报错的问题 - 把
tailwindcss打补丁最低版本降到3.0.0 - 默认
jsMatcher现在会包括.cjs/.mjs这种文件后缀名了
- 支持作为
gulp插件使用 #161
修复 bg-[url('img_src')] 写法失效的问题 #158
- jsHandler 增强,添加了针对模板字符串的处理
- tailwindcss-patch 如今作为一个独立的
npm包来依赖了 - 增强了所有字面量分割的方式,增强了针对
vue3静态模板字符串的处理方式。
- 修复因
typescript升级5.x导致的dts路径错误问题 - 展开
:is()#153
rpx支持,在patch时,语法上统一转化为单引号字符串数组。
- 大量的文档优化
- 增加
customReplaceDictionary的simple/complex模式,simple为更简短的className replace导出所有,用于自定义运行时对replace行为进行二次封装。
- typescript dts fixed
文档更新,添加 customAttributes 案例
- 实现
customAttributes*全匹配的逻辑
- 额外导出
UniAppWeappTailwindcssWebpackPluginV5用于uni-app的vue/cli 5版本
- 添加
uni-app-webpack5Demo 用于vue/cli 5版本 - uni-app Readme 完善
- 添加
supportCustomLengthUnitsPatch配置项,默认开启。
自从tailwindcss 3.2.0对任意值添加了长度单位的校验后,小程序中的rpx这个wxss单位,由于不在长度合法名单中,于是被识别成了颜色,导致与预期不符,详见:issues/110。
所以这个选项是用来给tailwindcss运行时,自动打上一个支持rpx单位的补丁。默认开启,在绝大部分情况下,你都可以忽略这个配置项,除非你需要更高级的自定义。
比较和处理的策略详见 patcher.ts
- 升级
rollup主版本和相关包到3, 优化rollup打包生成的chunk - 添加
cli, 目前添加了patch指令,可手动给tailwindcss打上patch。具体执行npx weapp-tailwindcss patchornpx weapp-tw patch - 在安装这个包后,会自动检索
tailwindcss运行时源码,打上支持rpx的patch。不过这种自动检索存在一定的缺陷,比如在第一次运行的时候会不生效,第二次运行的时候才生效了。这是因为 nodejs 运行时先加载好了tailwindcss,然后再来运行插件,自动给tailwindcss运行时打上patch。此时由于tailwindcss模块已经加载,所以patch在第一次运行时不生效,ctrl+c 关闭之后,再次运行才生效。这种情况可以使用:
"scripts": {
+ "postinstall": "weapp-tw patch"
}
这样的 npm hook 来自动打 patch
- 使用
utf-8中文字体进行wxml条件判断时,会默认进行unicode转义的bug.
- 去除
vite插件使用windicss和unocss的命令行警告 - 添加
unocss的使用文档和案例
customAttributes现在允许使用Map类型了,可以自定义匹配标签正则。
webpack jsx test case完善
- 现在针对
wxml的匹配默认会更加精准,同时也影响customAttributes配置,详见 test/regexp-maker.test.ts customAttributes现在允许正则类型了。
- 更改
readmeoptions的排版, 去除原先的md table,让阅读体验好一些。 - 去除
vite plugin的重复性创建function方法
- 增加
customAttributes配置,用于自定义wxml标签上的转化属性,默认转化所有的class和hover-class。 - 增加
customReplaceDictionary配置,自定义转化class名称字典,你可以使用这个选项来简化生成的class
- 编写了第二版本的
jsx处理方法,替换第一版本。 - 支持
vue2/vue3+tsx开发 #100
- 以模板为主的
uni-app,mina等等的wxml变量处理方式,当遇到二元运算符时,忽略运算符中,字符串字面量的转义。
tailwindcss伪元素jit的自定义特殊字符。
- 重构重命名核心方法,为
v2做准备。
vite插件,可以直接注册,不需要再引入postcss插件
- 暂时去除
mangle配置 - 去除
lodash.groupby引用,减少包的体积
- 添加
mangle配置,用于压缩混淆className,详见 mangle.md - 重构
transformSync, 废弃mpRulePreflight weapp-tailwindcss-webpack-plugin/replacer额外暴露replaceEscapedCss- 暴露
weapp-tailwindcss-webpack-plugin/mangle插件
- using-arbitrary-variants 自定义选择器类名支持与修复 [#84]
- 添加
tailwindcss默认伪元素的--tw-content变量初始值 - 依赖处理方式改变,
postcss和postcss-selector-parser从编译时打入,变为安装时连带 - 精细化的移除选择器,当发现不支持的伪类选择器时,原先的策略是把
Rule整个移除,现在会遍历这个Rule的所有选择器,只把不支持的选择器的移除,当且仅当所有的选择器都被移除时,这个Rule才被整个移除
- 修复
vite版本tailwindcss默认注入变量选择器undefined的问题
- 允许用户使用
replaceUniversalSelectorWith选项来自定义css全局选择器*的替换值 [issue#81]
- 修复在伪元素中使用
*自动被替换的问题 #79
- 更改转义字典表,添加
*,\\和"的默认转义,规范化以前转义生成的_[code]_。
- 更新打包成
app文档和模板选择文档 - 依赖更新
- 支持
taro 3.5,用法如下:
简单修改 Taro 的编译配置即可切换使用 Webpack4 或 Webpack5 进行编译:
/** config/index.js */
const config = {
// 自定义编译工具,可选 'Webpack4' 或 'Webpack5'
compiler: 'webpack5'
}其中:
Webpack4使用TaroWeappTailwindcssWebpackPluginV4进行注册Webpack5使用TaroWeappTailwindcssWebpackPluginV5进行注册
- 添加
disabled配置项,用来表示是否禁用该插件,默认为false,一般用于多平台构建,有些平台比如h5不需要开启此插件,所以可以根据环境变量进行禁用。 onUpdate这个生命周期hook增加传入参数,即编译前的rawSource和 编译后的newSource作为第二和第三个参数,用于插件调试和文件内容比较。
- 添加
cssPreflightRange配置项 pull/62,用来限制全局选择器影响的dom范围,从而增加或者减少cssPreflight注入的dom,具体的使用方式见README.md
- 不再锁定
@babel/*的具体版本
- 修复
remax版本的hoverClassName不处理的问题。(remax命名比较特殊)
- 添加
tailwindcss的dark mode(media) 支持。 - 现在
uni-app和taro都会同时转义class和hover-class里的内容了 uni-app-vite-vue3-tailwind-vscode-template/issues/3。
- 修复
taro vue3版本babel处理导致打包失败的问题。
- 优化
ts生成的.d.ts文件的npm包索引。
issues/53 在BaseJsxWebpackPlugin的新文件开始处理前强制重置replacer状态。(Thanks to sandro-qiang)
- 优化被分割的
vite,postcss的d.ts智能提示
- 优化
Tree-shaking,减小npm包打包体积
issues/50 vite 插件依赖 webpack 问题
vite 引入插件的方式,改为:
import vwt from 'weapp-tailwindcss-webpack-plugin/vite'
import postcssWeappTailwindcssRename from 'weapp-tailwindcss-webpack-plugin/postcss'issues/48 Source map 指向错误问题.
更改了兼容 webpack 4/5 的 react 版本插件的实现。原先是对 webpack emit 后的产物进行分析和替换,现在新的实现为: 动态创建一个新的 jsx-rename-loader,它运行在 babel-loader 之后,对 babel-loader 的产物进行替换。这样最终生成的 Source map 就不会存在指向错误问题了。
收到影响的 Plugin:
- taro react :
TaroWeappTailwindcssWebpackPluginV4 - rax react :
RaxTailwindcssWebpackPluginV5 - remax react :
RemaxWeappTailwindcssWebpackPluginV4
Breaking change: handle wxml with regex instead of wxml-ast issues/38.