如何在 Symfony 项目中使用 jQuery 和 webpack-encore?

Posted

技术标签:

【中文标题】如何在 Symfony 项目中使用 jQuery 和 webpack-encore?【英文标题】:How to use jQuery with webpack-encore in a Symfony project? 【发布时间】:2021-01-01 05:57:32 【问题描述】:

我对 webpack-encore 和 jQuery 有疑问。 我有一个包含以下代码的 custom.js 文件:

import "../css/custom.css";

var $ = require("jquery");

global.$ = global.jQuery = $;

在树枝文件中我有这个代码:

<script src="asset('build/js/custom.js')"></script>
<script>
    $(document).ready(function ()
        alert("1");
    )
</script>

作为参数传递的 custom.js 的路径是正确的。

当我使用yarn run encore dev 编译时,jQuery 模块不在为custom.js 生成的文件中,而是在另一个名为0.b9e94bd1.js 的文件中。

问题是它给了我错误$ is not defined

我该如何解决这个问题?

【问题讨论】:

custom.js 是否引用了0.b9... 文件? 【参考方案1】:

我解决了这个问题。我用 encore_entry_script_tags 更改了树枝内的资产函数,现在定义了 jQuery 和 $。

【讨论】:

【参考方案2】:

我建议你在 webpack.config.js 中取消注释这一行

     // uncomment if you're having problems with a jQuery plugin
    .autoProvidejQuery()

见https://symfonycasts.com/screencast/webpack-encore/autoprovide-jquery-modules

【讨论】:

以上是关于如何在 Symfony 项目中使用 jQuery 和 webpack-encore?的主要内容,如果未能解决你的问题,请参考以下文章

webpack encore symfony4中的bootstrap和jquery

在 Symfony v5.2 项目中使用 Jquery-validaton v1.19.3 + Bootstrap v4.6 进行输入验证

将 jQuery 包含到 Symfony2 中

如何在 symfony2 控制器中发送 JSON 响应

我如何在没有 symfony 的项目中重用我的 symfony 实体

通过作曲家包含时如何在 AdminLTE 中使用 jQuery 的输入掩码