vue3+ts import引入第三方js文件报错的2种解决方法
作者:qq_37656005
这篇文章主要给大家介绍了关于vue3+ts import引入第三方js文件报错的2种解决方法,在Vue中通常我们引入一个js插件都是使用npm方式下载然后import使用的,需要的朋友可以参考下
报错原因:
执行 import XXX from ‘XXX.js’ 报错,The requested module ‘xxx.js’ does not provide an export named ‘default’ 可能是第三方文件不支持模块化标准,不能按需导入
解决方案:
第一种方法:
在index.html里利用script全局引入
<script type="text/javascript" src="xxx.js"></script>
第二种方法:
在所需的.vue文件里单独引入,最后在head标签里生成js和css,离开页面时移除
//移除js或者css function removejscssfile(filename,filetype){ let targetelement = (filetype === "js")? "script" :(filetype === "css")? "link" : "none"; let targetattr = (filetype === "js")?"src" : (filetype === "css")? "href" :"none"; let allsuspects = document.getElementsByTagName(targetelement); for (let i = allsuspects.length; i >= 0; i--){ if (allsuspects[i] && allsuspects[i].getAttribute(targetattr) != null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!= -1) allsuspects[i].parentNode.removeChild(allsuspects[i]) } } //加载js或者css function loadjscssfile(filename, filetype){ if (filetype === "js"){ var fileref = document.createElement('script'); fileref.setAttribute("type","text/javascript"); fileref.setAttribute("src",filename); } else if (filetype === "css"){ var fileref = document.createElement("link"); fileref.setAttribute("rel","stylesheet"); fileref.setAttribute("type","text/css"); fileref.setAttribute("href",filename); } if (typeof fileref != "undefined") { document.getElementsByTagName("head")[0].appendChild(fileref); } } //在vue钩子里执行 onBeforeMount(()=> { loadjscssfile("mystyle.css", "css") loadjscssfile("xxx.js?" + Math.random(), "js"); }) //销毁 onUnmounted(()=>{ removejscssfile("mystyle.css", "css"); removejscssfile("xxx.js", "js"); })
总结
到此这篇关于vue3+ts import引入第三方js文件报错的2种解决方法的文章就介绍到这了,更多相关vue3 import引入第三方js文件报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!