jquery Webpack获取加载的基本模块以供全局使用

tuwxkamq  于 2023-06-29  发布在  jQuery
关注(0)|答案(1)|浏览(104)

我有一个项目,我使用Select 2(和其他东西),需要jQuery。我尝试用Webpack创建我的前端,但它被加载为几个不同的JavaScript文件(所以我的webpack配置显示多个模块导出)。为了让jQuery/$在打包文件时正确工作,我添加了以下内容:

var webpack = require("webpack");

plugins: [
    new webpack.ProvidePlugin({
        $: "jquery",
        jQuery: "jquery",
    }),
]

我的select2_creator.js看起来有点像:

import 'select2'

$(function() {
    $("#id_dropdown_1").select2({dropdownAutoWidth: true});
    $("#id_dropdown_2").select2({dropdownAutoWidth: true});
});

这是可行的,但现在我想很好地使用jQuery并安装它,而不是在我的文件夹中有一个静态的jquery.min.js。因此,我创建了一个新的js文件,其中只有:import jquery的想法是,名为main_bundles.js的js文件将作为jQuery工作(稍后作为项目中任何地方使用的其他库)。创建了main_bundles.js,并在前端使用(django template)导入:
<script type="text/javascript" src="{% static "custom_js/main_bundles.js" %}"></script>
但是现在前端似乎根本没有“看到”jQuery在那里,我得到了$ is undefined错误。最有可能的是,我只是不太了解JavaScript是如何进行库管理的,以及什么是全局的,什么不是全局的,但老实说,我也找不到它似乎向我解释的正确文档。我如何以“最佳实践/正确”的方式解决这个问题?

hzbexzde

hzbexzde1#

听起来你要做的是将jquery暴露给你的全局window,看起来你可以用任何一种方式来做:

  • 尝试一种最简单的方法来手动暴露它,如下所示:
import jQuery from "jquery";

window.$ = window.jQuery = jQuery;

相关问题