Webpack работает иначе, чем Sprockets. Одна вещь, с которой вы сталкиваетесь, заключается в том, что веб-пакет не выставляет что-либо в глобальном масштабе. Это означает, что вызов функций из тега скрипта не будет работать должным образом, если вы не указали веб-пакету добавить эти переменные в объект window
.
Ваш файл quickclick. js также не поддерживает модуль, т.е. , он не экспортирует что-либо, например, с module.exports = InstantClick
.
С помощью веб-пакета вы можете настроить его на выполнение обоих действий. Вам нужно как экспортировать , так и выставить InstantClick
:
yarn add expose-loader exports-loader
// config/webpack/environment.js
const { environment } = require('@rails/webpacker')
environment.loaders.append('InstantClick', {
test: /instantclick/,
use: [{
loader: 'expose-loader',
options: 'InstantClick'
},
{
loader: 'exports-loader',
options: 'InstantClick'
}]
})
module.exports = environment
Существует множество других возможностей и способов, которыми вы можете это сделать. курс. Вот некоторые ресурсы: