uni-app
uni-app copied to clipboard
easycom功能无法兼容pnpm
收到,后续会进行排查
@zhetengbiji
排查了下发现是下面的代码出了问题
通过easyCom功能自动导入的组件的chunkName被写死成了requestPath和实际webpack解析到的resourcePath不一致导致编译后的文件路径错位了
目前想到两种解决方案
-
想办法获取到当前loaderContext中resolve方法,将requestPath转化为resourcePath 但是resolve方法是异步的,需要将generateAutoComponentsCode函数改为异步函数,成本很高
-
可以使用unplugin-vue-components包重构easyCom功能 我发现 虽然直接从node_modules中导入组件中也会有bug,但是只是因为一个很小的判断错误导致的,修复之后几乎完美 现在的easyCom功能实现方式很令人困惑,跟正常导入组件的方式有很大不同,完全不走webpack-uni-mp-loader/script-new 如果能在vue-loader编译之前实现自动导入,还可以复用webpack-uni-mp-loader/script-new中的逻辑
@zhetengbiji 排查了下发现是下面的代码出了问题
通过easyCom功能自动导入的组件的chunkName被写死成了requestPath和实际webpack解析到的resourcePath不一致导致编译后的文件路径错位了
目前想到两种解决方案
- 想办法获取到当前loaderContext中resolve方法,将requestPath转化为resourcePath 但是resolve方法是异步的,需要将generateAutoComponentsCode函数改为异步函数,成本很高
- 可以使用unplugin-vue-components包重构easyCom功能 我发现 虽然直接从node_modules中导入组件中也会有bug,但是只是因为一个很小的判断错误导致的,修复之后几乎完美 现在的easyCom功能实现方式很令人困惑,跟正常导入组件的方式有很大不同,完全不走webpack-uni-mp-loader/script-new 如果能在vue-loader编译之前实现自动导入,还可以复用webpack-uni-mp-loader/script-new中的逻辑
我也遇到这个问题了,能贴下代码第二种方法具体怎么处理吗?谢谢
遇到同样的问题了,能解决一下嘛