Some older Node modules rely on window.jQuery to be present. One 
  suggested solution
  
    Show archive.org snapshot
  
 is to use this config in the app/config/webpack/environment.js:
const { environment } = require('@rails/webpacker')
const webpack = require('webpack')
environment.plugins.prepend(
  'Provide',
  new webpack.ProvidePlugin({
    $: 'jquery',
    jQuery: 'jquery',
    'window.jQuery': 'jquery'
  })
)
module.exports = environment
This will work. But a side effect is that the following approach in the app/javascript/packs/application.js to expose jQuery to the browser window object will not work anymore:
import jQuery from 'jquery'
window.$ = jQuery
window.jQuery = jQuery
In the browser jQuery will be undefined, whereas $ is still defined. The 
  issue
  
    Show archive.org snapshot
  
 is known (here $ is undefined as "window.jQuery": "jquery" is used).
You can use global instead of window, which will solve the issue (Webpack will transform global to window in the context of a web application).
import jQuery from 'jquery'
global.$ = jQuery
global.jQuery = jQuery
Posted by Emanuel to makandra dev (2019-05-08 07:59)