Closed vivid05 closed 11 months ago
提供你的配置文件
提供你的配置文件
{ url: 'https://xxx', modules: [ 'vue', 'vue-router', 'vue-i18n', '@sentry/vue', '@sentry/tracing', 'axios' ], resolve: resolver }
const filterModules = [ {name: 'vue', path: 'vue.js'}, .... ] const resolver = (base, { name }) => { const path = filterModules.find(item => item.name === name)?.path return base + path }
根据你的代码我目前无法判断是什么问题。你可以打开f12看一下请求的cdn资源是否正确加载了。
根据你的代码我目前无法判断是什么问题。你可以打开f12看一下请求的cdn资源是否正确加载了。
报错的那三个没有加载cdn,其他的有正常加载。另外有个问题是,项目用了unplugin-vue-components插件对vant进行按需引入,使用你的插件之后会把如需引入的vant给丢失掉了
如果cdn正确加载了 控制台信息呢
'@sentry/vue','@sentry/tracing',
插件找不到全局名称。 你得手动传入
'@sentry/vue','@sentry/tracing',
插件找不到全局名称。 你得手动传入
全局名称是指什么名称
umd或者iife文件的 name。比如vue
对应的是Vue
。 @sentry/vue
和后面的包并没有提供相关的global name,这个你得自己去找一下
不过我看了下sentry并没有提供umd或者iife文件。
另外有个问题是,项目用了unplugin-vue-components插件对vant进行按需引入,使用你的插件之后会把如需引入的vant给丢失掉了。这个问题怎么说,用vite-plugin-cdn-import,同样存在
vant 有正确加载cdn吗? cdn插件需要放在unplugin的插件后面
vant没有配置cdn,就只是按需引入打包的
由于你vue配置了cdn那么他就不会打包进去 这时候vant 根据构建工具他读取不到vue。因为这时候vue只会挂载在window上。
由于你vue配置了cdn那么他就不会打包进去 这时候vant 根据构建工具他读取不到vue。因为这时候vue只会挂载在window上。
那解决方案只能是把vant也配置cdn了吧
你依赖了sentry。sentry vue具体做了什么我不太清楚。不过前面几个正确依赖的话是没问题的。按照我的理解使用Unplugin他更多的是自动按需导入。那么涉及到cdn的话 cdn是可以在生产环境下全量导入的因为他可以并行
根据调试结果来看是符合预期的。 sentry我刚刚看了下 他并没有依赖于vue。目前是没法进行cdn优化的。
你可以试一下modules
里面设置['vue','vue-router','vue-i18n','vant','axios']
你可以试一下
modules
里面设置['vue','vue-router','vue-i18n','vant','axios']
vant按需打包的话比cdn全量引入体积小多了,没有别的办法了吗😭
没有。其实cdn和按需引入在不同项目体积下的表现是不一致的