mini-program-tailwind icon indicating copy to clipboard operation
mini-program-tailwind copied to clipboard

Taro webpack5 cache enable时的编译问题

Open tyuan511 opened this issue 3 years ago • 8 comments

taro3.5.2配置cache: {enable:true},当有缓存存在时,编译会出问题 复现:config/index.js中添加compiler: 'webpack5', cache: {enable:true}配置,运行两次yarn dev:weapp或者yarn build:weapp即可复现 初步来看当cache存在时module?._source?_valueAsString会变成undefined,导致跳过了后续的转换。通过module.originalSource()?.source()好像可以获取到内容

tyuan511 avatar Aug 19 '22 01:08 tyuan511

请问你具体遇到了什么编译问题?我这边暂时没有发现什么问题。 开启了缓存后 webpack 只会把变动的模块内容传给插件,没变动的就是 undefined 插件则会跳过对这些内容的处理。这么看起来是挺合理的。

ItsRyanWu avatar Aug 21 '22 08:08 ItsRyanWu

开启webapck5和cache,运行build:weapp编译成功后,再次运行build:weapp特殊字符不会被编译

tyuan511 avatar Aug 21 '22 12:08 tyuan511

我再次试了 build 模式,发现结果应该是符合期待的。你说的在未更改 UI 代码的情况下再次运行 build 命令插件的确不会再次编译重复的代码但上一次的编译结果也是保留的,而如果你改了某一个 UI 代码文件 webpack 也只会传递给插件已变更的代码来更新对应的编译产物。这个逻辑存在什么问题吗?

ItsRyanWu avatar Aug 21 '22 15:08 ItsRyanWu

辛苦大哥了,可能是我上下文说的不够清楚,下面提供一些复现步骤,希望能有所帮助

复现repo: https://github.com/tyuan511/taro-tailwind-demo 复现步骤:运行两次build:weapp 第二次运行结果异常: image

第一次运行或删除node_modules/.cache下缓存后 运行结果正常: image

tyuan511 avatar Aug 22 '22 00:08 tyuan511

同问题,我这边删除node_modules/.cache有时候可以,有事后不行,就算关掉cache也一样不行

kongsiyu avatar Sep 05 '22 08:09 kongsiyu

那此问题 cache 无关?

yoyo837 avatar Sep 15 '22 08:09 yoyo837

+1 pnpm 也不行

agileago avatar Oct 01 '22 06:10 agileago

请问这个问题现在有解决方案了吗

bluescurry avatar Jun 26 '23 09:06 bluescurry