Webpack打包后文件报错 $ is not defined or jQuery is not defined

在项目中使用本地jQuery时, 写代码时不会报错, 但是经过webpack打包后, 文件会报$ is not defined or jQuery is not defined的错误,这个错误很明显就是webpack打包后的文件找不到$和jQuery变量, 那么我们来解决这个问题.

解决方案

既然webpack找不到这两个变量, 我们就在配置文件中直接告诉它好了.

  1. 增加alias配置, 告诉jquery变量对应的文件路径

20220110082852-2022-01-10-08-28-53

  1. 引入webpack变量

20220110083803-2022-01-10-08-38-04

  1. 增加webpack插件配置, 告诉jquery $ jQuery 这三个变量等价

20220110083051-2022-01-10-08-30-52

至此我们就解决了这个问题.

扩展

对于以上的解决方案, 是有通用性的, 凡是webpack打包后找不到某些变量, 都可以用以上方案进行解决.

替代方案

其实我们也不必打包jquery文件, 可以利用cdn, 这样还能节约自己服务器的带宽.

  1. 在index.html文件页脚中引入外部CDN

20220110083319-2022-01-10-08-33-19

  1. 安装@types/jquery作为开发依赖
npm install @types/jquery -D

文章首发于: https://w2fenx.com/291.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到的解决方法是在vue.config.js中添加一些配置,其中使用了webpack的ProvidePlugin插件来提供全局的jquery变量。这样就能解决报错"ReferenceError: $ is not defined"的问题。中提到的报错提示不是由于没有使用lib:["dom"]造成的,而是在类型注释中使用了MouseEvent。在这种情况下,没有问题的。中指出,如果项目中引用了.eslintrc.js文件,还需要在文件的module.exports中为env添加一个键值对jquery: true,然后重新启动项目。这样也可以解决报错"ReferenceError: $ is not defined"的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue引入JQuery报错caught ReferenceError: jQuery is not defined](https://blog.csdn.net/qq_46034741/article/details/130032090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vue ssr 报错 ReferenceError: MouseEvent is not defined / window is not defined 等等](https://blog.csdn.net/qq_28550263/article/details/130152398)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vue小知识: $ is not defined错误解决](https://blog.csdn.net/weixin_43945983/article/details/88294052)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值