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插件还不能丢,怎么兼容?》