В проекте Rails я пытаюсь перейти от использования старого конвейера ресурсов Sprockets к использованию webpacker. Я настроил эти тестовые файлы:
app / javascript / lib / foo.js
function foo() {
console.log('foo')
}
console.log('bar')
app / javascript / packs / application.js
// some standard Rails JS requires
// ...
require('lib/foo')
app / views / test / index.html
<script>
foo()
</script>
И в моих layouts / application.html.erb У меня есть
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
Когда я захожу на эту страницу в своем браузере, я вижу "bar", зарегистрированный в моей консоли, после чего
"ReferenceError: foo не определено"
Я пробовал несколько разных подходов к настройке моих файлов, например, используя импорт вместо require или настройку module.exports = foo
или export default foo
в моем js-файле, но мне не повезло обойти вышеизложенноесообщение об ошибке.
Короче говоря, как я могу переместить файлы javascript из звездочек в веб-упаковщик? И, если возможно, как мне это сделать, не меняя существующий код JavaScript?