Rails Webpacker - Uncaught TypeError: $ (...). Подсказка не является функцией - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть приложение Rails 6, а ресурсы скомпилированы с использованием Webpack 4.39.1 ( gem Webpacker ).

Я добавил JQuery 3.4.1 и Popper.js в веб-пакет ProvidePlugin следующим образом (config/webpack/environment.js):

const { environment } = require('@rails/webpacker');

const webpack = require('webpack');

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

module.exports = environment;

У меня есть файл javascript/packs/application.js, и это записьпункт для веб-пакета.

Я добавил Bootstrap 4.1.1 и импортировал его в application.js.

Теперь я пытаюсь настроить всплывающую подсказку следующим образом:

import "bootstrap/dist/js/bootstrap";

$( document ).ready(function() {
    $('[data-toggle="tooltip"]').tooltip({
        container: 'body',
        placement: 'auto'
    });
});

Я получаю Uncaught TypeError: $(...).tooltip is not a function ошибку в консоли разработчика.

Я также проверил $.fn и обнаружил, что ни один из методов Bootstrap JS не является частью прототипа JQuery.

Любая помощь приветствуется!Спасибо

1 Ответ

0 голосов
/ 27 сентября 2019

Добавьте это в свой typing.d.ts.

Я тоже сталкиваюсь с той же проблемой.После этого обязательно перезапустите IDE и ваш веб-пакет снова.

interface JQuery<any> {
    tooltip(params: any): any;
}
...