nonzzz / vite-plugin-cdn

replace module with CDN. work with vite.
MIT License
73 stars 5 forks source link

使用vite-plugin-cdn2 v0.15.4构建echarts提示失败 #42

Open XiaoDaiGua-Ray opened 4 months ago

XiaoDaiGua-Ray commented 4 months ago

问题描述

在 vite5.1.5 中使用 vite-plugin-cdn2 v0.15.4 构建 echarts 提示:echarts try resolve file failed。

但是,其他的包都正常构建。

image

环境

macOS:14.3.1 (23D60) cpu:m3 max vite:5.1.5

配置截图

image

resolve 方法,是一个将 cdnjs 资源地址拼接完整的方法,不过,当我手动补全的时候,也是无效的。

nonzzz commented 4 months ago

能提供一个最小复现吗?

nonzzz commented 4 months ago

我查看了 echarts提供的包 他在dist目录下存放了package.json 破坏了插件的scanner逻辑。其次0.15.4已经不在维护了。我会抽空把插件锈化到swc 加速构建。 这里你可以指定relativeModule 避免解析失败。

XiaoDaiGua-Ray commented 4 months ago

更新最新版本后,如何像以前那样自定义制定 resolve 呢?

nonzzz commented 4 months ago

Resolve Document 只需要给resolve编写一个函数即可

XiaoDaiGua-Ray commented 4 months ago

好的,我尝试一下升级依赖。

nonzzz commented 4 months ago

不过我会在新的版本锈化插件的同时 优化这块的解析逻辑。

XiaoDaiGua-Ray commented 3 months ago

你好,我按 Resolve Document 编写了对应的方法,但是我没找到对应的使用文档去使用该方法。

能否麻烦告知一下,谢谢。

nonzzz commented 3 months ago

@XiaoDaiGua-Ray 参考demo

XiaoDaiGua-Ray commented 3 months ago
image

我尝试使用默认的配置方法,也会导致报错。

nonzzz commented 3 months ago

因为在1.1 只是从0.16.0升级到stable的版本 而 这个优先级的问题并没有解决。这个问题会随着使用swc同步解决。得手动给echart指定relativeModule

XiaoDaiGua-Ray commented 3 months ago

也就是说,我需要手动去指定 relativeModule,并且参考 demo 使用?

nonzzz commented 3 months ago

对的。 因为解析的机制原因 我会在后续版本使用require.resolve('xx/pacakge.json')的方式去解决现在的问题。同时会使用 静态扫描解决一些其他问题。

XiaoDaiGua-Ray commented 3 months ago

issues 问题,在你的指导下已经解决了。

但是有一个疑惑的地方,还没有研究明白。就是我在给 npm 包配置了 cdn 后,为什么还是会有一个 chunk 包会被构建进去呢?

image image
nonzzz commented 3 months ago

@XiaoDaiGua-Ray 因为js 是可以引入subModule的 比如react-dom/client 诸如此类的子模块。你可以检查下你的代码是否包含了类似于这样的导入 如果有请给对应的模块配置上aliases。参照demo

XiaoDaiGua-Ray commented 3 months ago

好的,感谢你的耐心指导~