关于cdn 引入 vue 问题,项目使用了 unplugin-auto-import 自动引入插件,
打包后报错:
报错内容: Uncaught (in promise) TypeError: Failed to resolve module specifier "vue". Relative references must start with either "/", "./", or "../".
cdn 打包场景:
//利用vite-plugin-cdn-import
viteCDNPlugin({
modules: [
{
name: "vue",
var: "Vue",
path: "https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.45/vue.global.prod.min.js",
},
]
})
//部分rollup配置
rollupOptions: {
external: ["element-plus", 'echarts', 'vue','vue-demi'],
plugins: [
commonjs(),
externalGlobals({
vue: "Vue",
"element-plus": "ElementPlus",
'echarts': 'echarts',
// 'xlsx': 'xlsx'
// 👇 配置 vue-demi 全局变量 👇
"vue-demi": "VueDemi",
// 'vue-router': 'VueRouter',
// 'pinia': 'pinia',
// 'axios':'axios'
}),
],
output: { //静态资源分类打包
format: 'es',
globals: {
vue: 'Vue',
// 'vue-router': 'VueRouter',
},
}
版本环境
"vite": "^4.0.0",
"unplugin-auto-import": "^0.12.1"
"vue": "^3.2.45",
寄语:我用尽了这三年来的搜索功力,实在没有解决,但是cdn优化势在必行。有vue+vite构建经验的朋友,望拔刀相助,不胜感激。