webpack打包jquery多页_webpack打包后使用jQuery的问题

在webpack打包过程中,遇到使用jQuery时出现'Uncaught ReferenceError: $ is not defined'的错误。原因是jQuery没有被绑定到window对象上。解决方案是在入口文件中通过`window.$ = require('jquery')`将其全局化,或者在webpack配置中使用ProvidePlugin来自动加载jQuery。
摘要由CSDN通过智能技术生成

使用webpack打包了页面上使用的一些js文件

配置文件:

var webpack = require("webpack");

var path= require("path");

module.exports = {

entry: [

"./admin/public/entry/entry.js"

],

output: {

path: path.join(__dirname,"/admin/public/js/out"),

filename: "bundle.js"

},

module: {

loaders: [{

test: /\.css$/,

loader: "style!css"

}]

},

plugins: [

new webpack.ProvidePlugin({

$: "jquery",

jQuery: "jquery",

"window.jQuery": "jquery"

})

],

}

入口文件:

require('bootstrap');

require('bootstrap-switch');

require('bootstrap-timepicker');

require('../js/jquery.cookies.js');

require('gritter');

require('../js/datatable.js');

require('../js/custom.js');

require('../js/common.js');

require('../js/tag.js');

require('jquery-ui');

require('cropper');

require('ztree');

打包完之后再网页上使用jQuery会报

Uncaught ReferenceError: $ is not defined

表示理解不能,为何在打包的js插件中使用jq没问题,在网页中却要报错

这么打包之后

jquery

需要

require

才能用的,譬如:

var $ = require('jquery');

//这才能开始用

$('#id').show();

你在你的js文件中能够使用jquery是因为你通过require方式将jquery加载到了当前文件中,所以能够使用;

如第一点所说的,你只是吧jquery作为某个js文件中的一个变量,并没有绑定到window对象上,所以,在网页上是无法获取到jquery对象的 :

你可以尝试在 比如 : index.js 中 添加如下代码:

window.$ = require(“jquery”);

这样的话 ,应该就可以在网页中使用了 ~

你需要把require的jq全局化

exporse

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值