uni-app icon indicating copy to clipboard operation
uni-app copied to clipboard

pnpm workspace模式,项目成功运行,页面白屏 控制台报错提示“ does not provide an export named 'injectHook'”

Open y-sl opened this issue 1 year ago • 4 comments

问题描述 [使用的vite+ts的模板,代码一点没动,改为采用pnpm workspace模式,运行run:h5报错]

image

y-sl avatar Aug 05 '23 15:08 y-sl

image

目录结构

y-sl avatar Aug 05 '23 15:08 y-sl

https://github.com/dcloudio/uni-app/blob/8b10afa1c3656e690c3fa5942f830ed52a9871fb/packages/vite-plugin-uni/src/cli/utils.ts#L102-L104

https://github.com/dcloudio/uni-app/blob/8b10afa1c3656e690c3fa5942f830ed52a9871fb/packages/vite-plugin-uni/src/index.ts#L130-L134

https://github.com/dcloudio/uni-app/blob/8b10afa1c3656e690c3fa5942f830ed52a9871fb/packages/vite-plugin-uni/src/utils/plugin.ts#L139

vite-plugin-uni 插件,设置了默认环境变量 UNI_CLI_CONTEXT,只会从子包的 package.json 中获取插件。所以 pnpm workspace 模式下,插件依赖安装在根目录,vite-plugin-uni 会找不到插件,就会报这个错误。由于运行顺序问题,目前无法在外部修改这个环境变量 process.env.UNI_CLI_CONTEXT

feibi avatar Nov 13 '23 09:11 feibi

所以结论就是目前不支持pnpm-workspace模式?

MrChildrenHY avatar Dec 30 '23 06:12 MrChildrenHY

在子项目的 package.json 里面 引入 vite-plugin-uni等,可以解决。 不知道有没有其他好的方案

longerhot avatar Apr 29 '24 06:04 longerhot