跳到主要内容

v1 版本插件常见问题,使用最新版本插件无须参考

我在 js 里写了 tailwindcss 的任意值,为什么没有生效?

详见 issue#28

A: 因为这个插件,主要是针对, wxss,wxmljsx 进行转义的,js 里编写的 string 是不转义的。如果你有这样的需求可以这么写:

import { replaceJs } from 'weapp-tailwindcss-webpack-plugin/replace'
const cardsColor = reactive([
replaceJs('bg-[#4268EA] shadow-indigo-100'),
replaceJs('bg-[#123456] shadow-blue-100')
])

你不用担心把代码都打进来导致体积过大,我在 'weapp-tailwindcss-webpack-plugin/replace' 中,只暴露了2个方法,代码体积 1k左右,esm格式。

replaceJs 跨端注意点

就是在常见问题中的 replaceJs 这个方法原先是为小程序平台设计的,假如你一份代码,需要同时编译到小程序和 h5 平台,可以参考如下的封装:

// util.js
import { replaceJs } from 'weapp-tailwindcss-webpack-plugin/replace'
// uni-app 的条件编译写法
export function replaceClass(str) {
// #ifdef H5
return str
// #endif
return replaceJs(str)
}
// or 环境变量判断
export function replaceClass(str) {
// 需要根据自己目标平台自定义,这里仅仅给一些思路
if(process.env.UNI_PLATFORM === 'h5'){
return str
}
return replaceJs(str)
}

// then other.js
const cardsColor = reactive([
replaceClass('bg-[#4268EA] shadow-indigo-100'),
replaceClass('bg-[#123456] shadow-blue-100')
])

这样就能在多端都生效了。