-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vue配置cdn报错 #13
Comments
+1 |
好像是vue-ts的问题,用vue-js就没问题 |
你用了pinia了吗?我的是用了pinia导致报错的 |
找不到 vue 版本的原因是 pinia 使用了 vue-demi 进行开发 解决办法是也把 vue-demi 用cdn 引入, 且 vue-demi 需要放在 pinia 前面
|
无解自己用 rollup配置也不行 |
有可以重现的github仓库地址吗 |
https://gitee.com/null_639_5368/vue-vant-base/tree/vue3-vite/
|
@LuckyRyan-web 你下载一下我这个仓库,我里面用的是你这个插件你可以看下。另外建议autoComplete 添加 vuex vue-router vant element-plus ant-design |
我运行了你这个仓库, 去除了 base 等配置, 并且修改 |
|
我也有这个问题,而且好像没法,
|
楼主有思路吗? 这个应该是vite(内部模块加载机制) 和 cdn包的不兼容导致。不知道什么时候给出解决方案。 |
同样遇到了这个问题,不过我连vue都引入不进来,报错
plugins: [
vue(),
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
visualizer(),
importToCDN({
modules: [
autoComplete("vue"),
],
}),
], |
我把element-plus, vue-router, axios都引入就正常了🤣 plugins: [
vue(),
// AutoImport({
// resolvers: [ElementPlusResolver()],
// }),
// Components({
// resolvers: [ElementPlusResolver()],
// }),
visualizer(),
importToCDN({
modules: [
autoComplete("vue"),
{
name: "element-plus",
var: "ElementPlus",
css: "https://cdn.jsdelivr.net/npm/[email protected]/dist/index.css",
path: "https://cdn.jsdelivr.net/npm/[email protected]/dist/index.full.min.js",
},
autoComplete("axios"),
{
name: "vue-router",
var: "VueRouter",
path: "https://cdn.jsdelivr.net/npm/vue-router@4/dist/vue-router.global.min.js",
},
],
}),
], |
跟AutoImport冲突了,要把AutoImport和Components去掉才能生效 |
是啊,不过我原打算是element按需引入的,没想挂CDN |
不打包可以 打包之后 Vue is not found 唉 |
@LuckyRyan-web 可以看看这个 docs: vite 之所以使用 AutoImport 后就会有问题,是因为 unplugin-auto-import 的 enforce 为 post ,会最后才执行,导致通过 AutoImport 的注入的代码没有被此插件转换 问题定位到,解决方式其实就很简单了,只要让 vite-plugin-cdn-import 在最后执行就可以 然后我查看了此项目的源码,看到是通过合并用户配置项修改了 rollupOptions 来实现的,关于如何修改 rollup plugins 的执行时机vite也有相关的文档,但是我暂时还不清楚在此项目中应该如何进行修改,可以给我一些 指引/规范 吗,我将很乐意为此贡献一个pr |
我在我的一个模版仓库的test/cdn1分支中,基于 rollup-plugin-external-globals 和 vite-plugin-html 实现了同样的功能,可以参考一下 |
@LuckyRyan-web 我使用了 unplugin-auto-import/vite 插件 |
可以考虑使用vite-plugin-cdn2. 能解决无法使用unplugin 以及 |
现在有解决吗 |
刚试了@nonzzz的插件,与 AutoImport 和 Components 都能用
|
|
可以。 |
参考文档 |
cdn({
url: 'https://cdn.bootcdn.net/ajax/libs/',
modules: ['vue', 'vue-router', 'vant'],
resolve: (base, { name, version }) => {
if (name === 'vue' || name === 'vue-router') {
return `${base}/${name}/${version}/${name}.global.prod.min.js`
} else {
return `${base}/${name}/${version}/${name}.min.js`
}
}
}) url代表你需要自定义的地址。 resolve是一个全局的url 转换器 |
@vivid05 你在我那单独开了issue就在那进行回复吧。 |
牛比,这个可以解决,遇到这个问题两次了,一次是使用pina,第二次是unplugin。 |
|
@ijry 你这个是老版本的配置方式了。新版本的配置已经不是这样了。 |
怪不得,感谢。 |
The text was updated successfully, but these errors were encountered: