uni-app
uni-app copied to clipboard
pnpm workspace模式,项目成功运行,页面白屏 控制台报错提示“ does not provide an export named 'injectHook'”
问题描述 [使用的vite+ts的模板,代码一点没动,改为采用pnpm workspace模式,运行run:h5报错]
目录结构
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
所以结论就是目前不支持pnpm-workspace模式?
在子项目的 package.json 里面 引入 vite-plugin-uni等,可以解决。 不知道有没有其他好的方案