sonofmagic / weapp-pandacss

To use pandacss in weapp!
https://sonofmagic.github.io/weapp-pandacss/
MIT License
16 stars 1 forks source link

无法正确生成helpers.mjs文件以及出现Error: EBUSY: resource busy or locked错误 #97

Open gisuni-fantasy opened 2 months ago

gisuni-fantasy commented 2 months ago

【环境】 window 10专业版,vs code 1.91.0,taro 3.6.29,postcss 8.4.39,@pandacss/dev 0.39.2,weapp-pandacss 1.5.0 【问题】 panda codegen && weapp-panda codegen命令执行正常,已正确生成helpers.mjs文件 在执行build:weapp和dev:weapp命令时均会出现如下Error: EBUSY: resource busy or locked错误 image image 每次执行编译EBUSY: resource busy or locked出现的次数和指向的文件有一定随机性 同时会导致helpers.mjs文件只有一行代码 image 【尝试解决】 1、在编译结束后,应用无法正常运行,但用weapp-panda codegen生成的正常的helpers.mjs文件内容替换掉错误的内容后,应用和样式就正常了 2、尝试修改node_modules/weapp-pandacss/dist/context-DWYG9rON.cjs文件 image 修改后可消除EBUSY错误 3、尝试修改node_modules/weapp-pandacss/dist/context-DWYG9rON.cjs文件 image 修改后可生成正确的helpers.mjs文件 【疑问】 taro-react-pandacss-template 示例中,代码文件较少,就不会出现这个问题。但我的工程的文件数比较多,编译时createContext里的codegen方法会执行几十次,其中调用的copyEscape、patch方法会不断地读写文件,猜测是并行过程导致了文件读写异常,请问是否有其他方式能修复这个问题?

sonofmagic commented 2 months ago

是的,当时设计实现时候,写的比较粗糙,没有考虑到这种场景。后续看到没有什么用户就没有继续迭代版本。

没想到还是大佬在用的哈,感谢使用,这个问题我会尽快 fix 的。

sonofmagic commented 2 months ago

可以试试 "weapp-pandacss": "1.5.1", 版本,这个版本减少了一些不必要的 fs 操作

假如还是不能解决问题,再在这个 issue 里回复吧

gisuni-fantasy commented 2 months ago

感谢如此快的响应,问题仍然存在,错误和helpers.mjs的问题也一样,按之前那样修改后就正常了

sonofmagic commented 2 months ago

我学习你一下你的改法,因为你是在我的 dist 产物上改的,出现问题的源代码应该在这里: https://github.com/sonofmagic/weapp-pandacss/blob/main/src/postcss/plugins.ts#L237

sonofmagic commented 2 months ago

看起来您的改动能解决问题,但是不能治本。我很想找一种,可以治本的方法。

请问您能提供可复现的 demo,或者您能够把我加到私有仓库里面吗,我想复现一下这个错误。

sonofmagic commented 2 months ago

试试 1.5.3 版本,我又尝试修复了一下