vue-cli按官方URL转换规则引入jQuery静态资源失败原因咨询
问题解析:vue-cli中
~/路径无法导入jQuery的原因 嘿,我来帮你搞明白为啥官方推荐的URL转换规则在这里不管用~
核心原因:~/的解析指向你理解错啦!
你提到的vue-cli官方文档里的~/别名,实际是指向项目的src目录,而非node_modules!所以你写的require('~/jquery/dist/jquery.min.js'),webpack会去src/jquery/dist/jquery.min.js这个路径找文件,但你的jQuery明明放在node_modules里,自然就找不到了。
而你导入Semantic UI的路径./semantic/dist/semantic.js是相对路径,从App.vue所在的src目录出发,刚好能匹配到src/semantic下的文件,所以这部分能正常加载。
为什么你的临时方案能生效?
你用的import jQuery from 'jquery'是webpack的标准模块导入逻辑:webpack会自动在node_modules目录下查找名为jquery的包,所以能正确加载。之后把jQuery挂载到window上,Semantic UI就能找到全局的$和jQuery变量,自然就能正常运行了。
符合官方规则的正确写法
如果想用官方的资源导入方式处理node_modules里的包,直接写包名或者完整的相对路径到node_modules即可,不需要用~/:
<script> // 直接从node_modules导入jQuery(webpack会自动查找node_modules目录) require('jquery/dist/jquery.min.js'); // 也可以更简洁:require('jquery'),webpack会自动识别包的主入口文件 require('./semantic/dist/semantic.js'); export default { } </script>
这样既遵循了webpack的模块解析规则,也能正确加载到jQuery和Semantic UI啦~
内容的提问来源于stack exchange,提问作者Richard Vock
相关产品推荐
相关产品推荐

