webpack打包后使用jQuery的问题

发布于 2022-09-02 14:27:21 字数 1064 浏览 14 评论 0

使用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没问题,在网页中却要报错

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

稚气少女 2022-09-09 14:27:21

这么打包之后jquery需要require才能用的,譬如:

var $ = require('jquery');

//这才能开始用
$('#id').show();
请别遗忘我 2022-09-09 14:27:21
  1. 你在你的js文件中能够使用jquery是因为你通过require方式将jquery加载到了当前文件中,所以能够使用;

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

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

window.$ = require("jquery");

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

独夜无伴 2022-09-09 14:27:21

你需要把require的jq全局化
exporse

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文