使用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
才能用的,譬如:你在你的js文件中能够使用jquery是因为你通过require方式将jquery加载到了当前文件中,所以能够使用;
如第一点所说的,你只是吧jquery作为某个js文件中的一个变量,并没有绑定到window对象上,所以,在网页上是无法获取到jquery对象的 :
你可以尝试在 比如 : index.js 中 添加如下代码:
window.$ = require("jquery");
这样的话 ,应该就可以在网页中使用了 ~
你需要把require的jq全局化
exporse