dcasia / mini-program-tailwind

让你的小程序用上原汁原味的 Tailwind/Windi CSS
https://www.craft.do/s/Wx2f9cjGwyZYOx
499 stars 41 forks source link

如何排除miniprogram_npm #45

Closed liziwork closed 2 years ago

liziwork commented 2 years ago

小程序第三方包构建的npm包含错误,class="{{classPrefix}} {{this.getAvatarGroupOuterClass(classPrefix, size)}} {{prefix}}-class"

image
ItsRyanWu commented 2 years ago

你所用的是第三方组件库是吗?可以把全部错误信息截图发上来吗?

liziwork commented 2 years ago

我用的是腾讯的小程序ui组件,https://tdesign.tencent.com/miniprogram/getting-started 因为这个包的代码里面,class都加了他们自己的前缀prefix。目前我也不知道怎么查看这个问题,最简单的解决方法就是windicss不去处理config里配置的路径,或者gulp不去处理,只做copy的操作。 错误信息如下: $ gulp TypeError: exp.test is not a function at testRegexr (/Users/lizi/Work/FishGo/Wechat/node_modules/windicss/lib/index.js:271:17) at _gStyle (/Users/lizi/Work/FishGo/Wechat/node_modules/windicss/lib/index.js:12292:42) at /Users/lizi/Work/FishGo/Wechat/node_modules/windicss/lib/index.js:12352:21 at Array.forEach (<anonymous>) at Processor.compile (/Users/lizi/Work/FishGo/Wechat/node_modules/windicss/lib/index.js:12348:13) at _loop_3 (/Users/lizi/Work/FishGo/Wechat/node_modules/windicss/lib/index.js:12722:56) at Processor.loadShortcuts (/Users/lizi/Work/FishGo/Wechat/node_modules/windicss/lib/index.js:12751:13) at new Processor (/Users/lizi/Work/FishGo/Wechat/node_modules/windicss/lib/index.js:11804:40) at Object.<anonymous> (/Users/lizi/Work/FishGo/Wechat/gulpfile.js:19:19) at Module._compile (node:internal/modules/cjs/loader:1112:14) error Command failed with exit code 1. 配置了windicss.config.js,配置如下,但是无效 extract: { // accepts globs and file paths relative to project root include: [ 'src/**/*.{wxml}', ], exclude: [ 'node_modules/**/*', 'src/node_modules/**/*.{wxml,wxss}', 'src/miniprogram_npm/**/*.{wxml,wxss}' ] }, gulp.config.js配置文件如果排除miniprogram_npm那么dist就不会copy过去。

liziwork commented 2 years ago

不好意思,错误复制错了一个。

image
ItsRyanWu commented 2 years ago

目前我还是不清楚你遇到了什么问题,你用的应该是 example/native 里的 Gulp 脚本,那你根据个人需求自定义配置插件工作流的自由度就非常高了,但这个 Gulp 的 template 配置 并没有扫描 src 外部的 miniprogram_npm 呀,难道在你那边 miniprogram_npm 是在 src 目录里面?这有些不符合常理。如果的确在 src 里面你可以根据 globs negative 语法排除一下 src 里面的 miniprogram_npm,例如将:

template: {
  src: 'src/**/*.wxml',
}

改写为

template: {
  src: [ 'src/**/*.wxml', '!src/miniprogram_npm/**' ]
}

这样在插件 handle template 的时候就不会扫描你的 src 里面的 miniprogram_npm 了。

liziwork commented 2 years ago

我配置文件跟你这个是一样的,目前的情况就是,微信的开发工具npm构建不了没有在src下的npm,所以我才把miniprogram_npm放到src里面去了,诶。然后如果配置'!src/miniprogram_npm/**' ,src里面的miniprogram_npm就没有wxml了无法正常使用了,现在是真的纳闷了,开发工具也犯毛病,然后我在检查ui组件是不是写的有问题,导致windicss无法正常识别。

image
liziwork commented 2 years ago

目前检查了腾讯ui组件,写法有问题,我向他们提issues,这个写法是不行的,获取不到prefix的。

image
liziwork commented 2 years ago

目前发现的问题就是微信的开发工具构建npm有问题,不能将miniprogram_npm放到src目录下,然后腾讯的ui组件里面的写法有问题,目前手动将miniprogram_npm放到src目录外面解决问题。