semi-design icon indicating copy to clipboard operation
semi-design copied to clipboard

[BUG] 使用pnpm,在vite中使用自定义主题,会出现编译错误

Open zk8080 opened this issue 2 years ago • 2 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

Which Component

No response

Semi Version

2.18.2

Current Behavior

image

Expected Behavior

在pnpm中能够正常使用自定义主题

Steps To Reproduce

使用pnpm初始化一个vite的react-ts项目,使用自定义主题即可复现

ReproducibleCode

No response

Environment

- OS: macos
- browser:chorome

Anything else?

调试了一下vite-plugin-semi-theme的源码,发现是没有兼容pnpm下依赖的路径问题,导致引入的自定义主题下的scss文件指向了.pnpm中的目录,而不是直接指向node_modules中的自定义主题包

zk8080 avatar Aug 29 '22 14:08 zk8080

vite 的插件是社区维护的,可以给他们提 Issue,目前可以先临时使用 主题包内部的全量 semi.css 来绕过。

DaiQiangReal avatar Aug 30 '22 03:08 DaiQiangReal

理论上pnpm下这个是软链,路径做额外处理感觉不是很合理。看起来是dart-sass不识别软链

pointhalo avatar Aug 30 '22 06:08 pointhalo

同样遇到这个问题。

ianho7 avatar Oct 26 '22 10:10 ianho7

这个暂时没有解决方案,需要先换 yarn或者npm绕过

pointhalo avatar Oct 26 '22 10:10 pointhalo

same ,绕不过去啊,直接Import也不生效

Kelier avatar Nov 22 '22 07:11 Kelier

same ,绕不过去啊,直接Import也不生效

直接 import 主题包里的 semi.css也不生效吗?是样式没进来 还是被覆盖了?

DaiQiangReal avatar Nov 22 '22 07:11 DaiQiangReal

same ,绕不过去啊,直接Import也不生效

直接 import 主题包里的 semi.css也不生效吗?是样式没进来 还是被覆盖了?

看着是覆盖了,要root包一层变量才有用

Kelier avatar Nov 23 '22 10:11 Kelier

这个暂时没有解决方案,需要先换 yarn或者npm绕过

semi官方是否会计划开发vite插件。现在vite已经非常成熟了,无论预览还是打包效率比webpage高了不知道多少倍。= 两年快过去了,依然不支持vite。

popdo avatar Apr 09 '24 08:04 popdo

这个暂时没有解决方案,需要先换 yarn或者npm绕过

semi官方是否会计划开发vite插件。现在vite已经非常成熟了,无论预览还是打包效率比webpage高了不知道多少倍。= 两年快过去了,依然不支持vite。

  1. 不是不支持vite,是 pnpm 下它的特殊目录结构会导致结合使用时有一些问题,vite + npm/yarn 是没问题的
  2. vite plugin 有社区版本,pnpm你可以试下 https://github.com/Codpoe/vite-plugin-semi-theming ,非pnpm可以用 https://github.com/boenfu/vite-plugin-semi-theme
  3. 我们自身人力有限,没有那么多人力去cover所有的工程化方案(这里的人力消耗会包括:初始版本以及跟进后续所有的使用问题),我们公司内部高强度使用的是 webpack 和 rspack,仅对这两者的构建方案提供官方支持。

pointhalo avatar Apr 09 '24 08:04 pointhalo

这个暂时没有解决方案,需要先换 yarn或者npm绕过

semi官方是否会计划开发vite插件。现在vite已经非常成熟了,无论预览还是打包效率比webpage高了不知道多少倍。= 两年快过去了,依然不支持vite。

  1. 不是不支持vite,是 pnpm 下它的特殊目录结构会导致结合使用时有一些问题,vite + npm/yarn 是没问题的
  2. vite plugin 有社区版本,pnpm你可以试下 https://github.com/Codpoe/vite-plugin-semi-theming ,非pnpm可以用 https://github.com/boenfu/vite-plugin-semi-theme
  3. 我们自身人力有限,没有那么多人力去cover所有的工程化方案(这里的人力消耗会包括:初始版本以及跟进后续所有的使用问题),我们公司内部高强度使用的是 webpack 和 rspack,仅对这两者的构建方案提供官方支持。

这个支持pnpm,亲测可用。非常感谢!主题好棒!

https://github.com/Codpoe/vite-plugin-semi-theming

popdo avatar Apr 09 '24 09:04 popdo