webpack jquery已经全局引入 为什么还是提示$未定义

查看:94
本文介绍了webpack jquery已经全局引入 为什么还是提示$未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

webpack jquery已经全局引入 为什么还是提示$未定义 难道打包的时候没有把jquery打包到vendors.js中吗
我是npm方式引入的jquery
webpack配置代码

new webpack.ProvidePlugin({
            $: 'jquery',
            jQuery:'jquery',
            'window.jQuery': 'jquery',
            'window.$': 'jquery',
        }),

{
              test: require.resolve('jquery'),
              loader: 'expose?$!expose?jQuery'
            },

我的入口js文件代码

require("../../css/style.less");
require("../../css/owl.carousel.css");
require("../../css/owl.theme.css");
require("../../lib/owl.carousel.js")
$(document).ready(function(){
  $('#owl-demo').owlCarousel({
      items: 1
  });
})

我的视图html文件代码

<!DOCTYPE html>
<html lang="en">
<head>
<title>title</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
</head>
<body>
<section id="content"></section>
<script id="test" type="text/html">
<div id="owl-demo" class="owl-carousel">
{{each list as value i}}
    <a class="item"><img src="{{value}}" alt=""></a>
{{/each}}
</div>
</script>
<script src="../src/lib/template.js"></script>
<script>
var data = {
    list: ['../src/img/fullimage1.jpg', '../src/img/fullimage2.jpg', '../src/img/fullimage3.jpg']
};
var html = template('test', data);
document.getElementById('content').innerHTML = html;
</script>
</body>
</html>

我用了artTemplate模板引擎 ,我想jquery ajax获取数据给变量赋值,但是在html里$提示未定义

解决方案

应该是你引入的方式有问题呗,详情请参考《webpack多页应用架构系列(四):老式jQuery插件还不能丢,怎么兼容?》

这篇关于webpack jquery已经全局引入 为什么还是提示$未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆