问题的原因是我写了一个基于vue的图片上传插件。用vue-cli打包成库后,想在本地引入umd包,测试插件是否可以使用,结果报错,主要是Unexpectedtoken'<'和ChunkLoadError:Loadingchunkxxfailed:点击报错的文件链接,发现是标签error:经过查找,基本是确定引入了错误,但不知道为什么。想解决搜索引擎纠结了好久,也试过改publicPath,加上@babel/plugin-transform-modules-umd等都没有用,主要是不知道根本原因。看了这两篇博文(Loadingchunkxfailedofwebpack,howtoavoidpackagingintomultipleumd.jsfileswhenVueCLIbuild--targetlib),联系结合,猜测原因是分包加载错误:webpackpackaginglibrary代码会被分成多个包(见下图),vue项目中只引入*.umd.js,其他分包并没有按顺序导入,因为分包的内容被篡改了浏览器拦截请求(见上文和第一篇博文),代码执行顺序不保证。那你可以试试把代码打包成一个文件,这样就不用保证脚本代码的执行顺序了,试试看行不行。需要修改vue.config.js:限制打包为一个包,修改css.extract为false,即不单独提取css文件,用户无法自行导入css//vue.config.jsconstwebpack=require("webpack");module.exports={css:{extract:false},configureWebpack:{plugins:[//限制只有一个包,不管Chunknewwebpack.optimize.LimitChunkCountPlugin({maxChunks:1})],//当在library在导入比较大的文件时,为了不影响主包的大小,需要设置包使用externalimportexternals:{echarts:"echarts"}}};再次打包:尝试导入使用,成功:summary虽然按照上面的思路问题解决了,但是是否是这个原因,我不是很确定(也许是错误的:))。如果大家有更好的想法,欢迎讨论^_^更多学习笔记请戳:https://github.com/6fa/WebKnowledge参考webpack的LoadingchunkxfailedVueCLIbuild--targetlibHowtoavoidpackaginginto多个umd.js文件
