gpt4 book ai didi

javascript - Rails 下使用 webpacker 进行 Bootstrap-notify 返回 $.notify 不是一个函数

转载 作者:行者123 更新时间:2023-11-28 03:08:28 29 4
gpt4 key购买 nike

我正在将一个项目从 Sprockets 迁移到 Webpacker。

我似乎无法正确运行的最后一件事是通知。

我曾经能够做到:$.notify('Test') 但现在我得到了

Uncaught TypeError: $.notify is not a function

当我尝试在浏览器控制台中执行此操作时,我遇到了相同的错误,而之前它工作正常。

这是我的 application.js 文件:

require("@rails/ujs").start();
require("turbolinks").start();
require("@rails/activestorage").start();
import 'bootstrap';
import 'bootstrap-notify';

我还尝试了 bootstrap-notify 上的 require,但这没有任何区别。

Environments.js

const { environment } = require('@rails/webpacker')
const erb = require('./loaders/erb')
const coffee = require('./loaders/coffee')

const webpack = require('webpack');
environment.plugins.append('Provide', new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
jquery: 'jquery',
Popper: ['popper.js', 'default']
}));

environment.config.set('resolve.alias', {jquery: 'jquery/src/jquery'});

environment.loaders.prepend('coffee', coffee);
environment.loaders.prepend('erb', erb);
module.exports = environment;

如果我将 bootstrap-notify.js 文件放在 assets/javascripts 文件夹中并像这样包含它:

    = javascript_include_tag 'bootstrap-notify', 'data-turbolinks-track': 'reload'

它可以正常工作,没有任何问题。

最佳答案

终于成功了。

bootstrap-notify 是一个旧包,不执行任何导出,只是启用 $ ($.notify) 上的功能。

为了让它与 Webpacker 配合良好,您可以安装 script-loader

yarn add script-loader

然后将其添加到您的 application.js 文件(在 webpack 目录下)

require("script-loader!bootstrap-notify");

这将在全局上下文中评估代码。确保代码被缩小,因为 Webpack 不会为您执行此操作。

关于javascript - Rails 下使用 webpacker 进行 Bootstrap-notify 返回 $.notify 不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60378066/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com