使用 Symfony 和 Webpack 找不到 tarteaucitronjs

Posted

技术标签:

【中文标题】使用 Symfony 和 Webpack 找不到 tarteaucitronjs【英文标题】:tarteaucitronjs not found using Symfony and Webpack 【发布时间】:2021-06-01 22:12:25 【问题描述】:

我有一个基于 Symfony 5 的项目。我想安装 tarteaucitronJS 来帮助管理 GPDR 权限。

在我的项目中,我已经安装了 Webpack,我使用 yarn 来安装新的依赖项。

我已经安装了 tarteaucitronJs 使用: yarn add tarteaucitronjs

在我的应用 JS 上安装后,我设置了以下代码:

require('tarteaucitronjs/tarteaucitron.js')

$(document).ready(function() 

    tarteaucitron.init(
        "privacyUrl": "", /* Privacy policy url */

        "hashtag": "#tarteaucitron", /* Open the panel with this hashtag */
        "cookieName": "tarteaucitron", /* Cookie name */

        "orientation": "middle", /* Banner position (top - bottom) */

        "showAlertSmall": false, /* Show the small banner on bottom right */
        "cookieslist": false, /* Show the cookie list */

        "showIcon": true, /* Show cookie icon to manage cookies */
        "iconPosition": "BottomRight", /* Position of the icon between BottomRight, BottomLeft, TopRight and TopLeft */

        "adblocker": false, /* Show a Warning if an adblocker is detected */

        "DenyAllCta" : true, /* Show the deny all button */
        "AcceptAllCta" : true, /* Show the accept all button when highPrivacy on */
        "highPrivacy": true, /* HIGHLY RECOMMANDED Disable auto consent */

        "handleBrowserDNTRequest": false, /* If Do Not Track == 1, disallow all */

        "removeCredit": false, /* Remove credit link */
        "moreInfoLink": true, /* Show more info link */
        "useExternalCss": false, /* If false, the tarteaucitron.css file will be loaded */

        //"cookieDomain": ".my-multisite-domaine.fr", /* Shared cookie for subdomain website */

        "readmoreLink": "", /* Change the default readmore link pointing to tarteaucitron.io */

        "mandatory": true /* Show a message about mandatory cookies */
    );

    console.log('Hello Webpack Encore! Edit me in assets/js/app.js');

);

当我使用: yarn encore dev

出现任何错误。但是在浏览器内的控制台上,出现以下错误:

未捕获的 ReferenceError: tarteaucitron 未定义 在 html 文档。 (app.js:20) 在可能抛出 (jquery.js:3762) 在进程(jquery.js:3830)

我不知道我做错了什么。你能解释一下有什么问题吗?

【问题讨论】:

app.js 的第 20 行是什么? 我的电话是tarteaucitron.init( 【参考方案1】:

你不能像这样要求这个 javascript 文件。该库不支持包含 webpack 等工具。

你需要像这样包含文件:

<script src="/tarteaucitron/tarteaucitron.js"></script>

<script>
tarteaucitron.init(
 // ...
);
</script>

或者你可以全局使用它:

global.tarteaucitron = require('tarteaucitronjs/tarteaucitron');

更多详情请见this issue。

【讨论】:

以上是关于使用 Symfony 和 Webpack 找不到 tarteaucitronjs的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2:学说“找不到驱动程序”

找不到 Symfony2 组件类

Symfony 4 部署后找不到翻译文件

找不到 Symfony2 突然登录路径

Symfony 4 - 在 LexikJWTAuthenticationBundle 中找不到 JWT

sh:symfony-cmd:找不到命令