Получение ‘Uncaught TypeError: $ (…).tablesorter не является функцией’ с помощью webpack

#javascript #ruby-on-rails #npm #webpack #yarnpkg

#javascript #ruby-on-rails #npm #webpack #yarnpkg

Вопрос:

Я получаю Uncaught TypeError: $(...).tablesorter is not a function после перехода на Rails 6 с помощью Webpack. Вот мой environment.js

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

const webpack = require('webpack')
environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin({
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery',
    tablesorter: 'tablesorter',
    bootstrap: 'bootstrap/dist/js/bootstrap',
    draggable: 'plain-draggable'
  })
)

module.exports = environment

 

Другие связанные плагины работают правильно.

Комментарии:

1. @jonrsharpe Вы решили эту проблему? У меня аналогичная проблема, и я был бы благодарен за ваш совет. Спасибо

2. @d_a_n обратите внимание, что я редактор — я просто исправил теги и форматирование.

Ответ №1:

Я не совсем уверен, почему, но это работает следующим образом:

 import $ from 'jquery'
import 'tablesorter'

$(document).on('turbolinks:load', () => {
  $('.tablesorter').tablesorter()
})