Почему я получаю неопределенный JS с Laravel? - PullRequest
0 голосов
/ 18 сентября 2018

Я использую Laravel и в моем bootstrap.js файле у меня есть

window.ProgressBar = require('progressbar.js');

, а затем мне требуется файл bootstrap.js в app.js

require('./bootstrap');

И яиспользуйте webpack.mix.js для компиляции

mix.js('resources/assets/js/app.js', 'public/js')

Если я попытаюсь получить доступ к progressbar.js внутри app.js, он будет работать отлично.

Однако, если я попытаюсь использовать его вне app.js в теге сценария , который идет после app.js на моих страницах, ProgressBar - это undefined.

Как мне получить доступ к ProgressBar за пределами моего app.js, но сохранитьимпортируется через app.js?

Пример index.blade.php

<script src="app.js" defer></script>
<script>
  const progress = new ProgressBar; //undefined...
</script>

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

У меня было defer на теге скрипта, и по какой-то причине он остановился.

Решение:

<script src="app.js" defer></script>

изменить на

<script src="app.js"></script>
0 голосов
/ 18 сентября 2018

Я думаю, что Webpack скрывает от вас ProgressBar, даже если вы ProgressBar назначены на window.Поскольку вы знаете, Webpack считает, что в комплекте есть весь код вашего приложения.Решение?Не связывать это!Вместо этого используйте уменьшенную версию ProgressBar и просто загрузите ее, как в старые добрые времена.Все в порядке, несколько наносекунд лучше или хуже, не заметно.

...