Столкнулся с той же проблемой и нашел исправление в закрытом выпуске репо. https://github.com/JeffreyWay/laravel-mix/issues/1136
Установите корень ресурса в webpack.mix.js с помощью следующего: mix.setResourceRoot ('. ./');
Я думаю, 'не делают', немного резко, вот кавычка от Steve McConnell:
Используемый с дисциплиной, глобальные переменные полезны в нескольких ситуациях
Я думаю точно так же, как хороший плотник имеет правильный инструмент для задания и будет использовать правильный инструмент, если потребность возникает, программисты должны также использовать все инструменты в их распоряжении.
Прямо из Завершенного Кода 'Проявления силы' несколько причин использовать глобальные данные:
McConnell также говорит:
Используйте Глобальные Данные Только как последнее прибежище. Прежде чем Вы обратитесь к использованию глобальных данных, рассмотрите несколько альтернатив.
вот альтернативы, которые он перечисляет:
Вещи, которые я упомянул здесь, получают большое покрытие в фантастическом Завершенном книжном коде
Используя статические / глобальные переменные сильно вредно для тестируемости Вашего кода, так как тест не может быть уверен, что объекты, которыми это управляет, не вызывают побочные эффекты в по-видимому несвязанных областях кодовой базы.
Если у Вас есть класс, которому нужен экземпляр класса CurrentUser, заставьте его попросить его в своем конструкторе.
Посмотрите здесь для большего количества информации: http://misko.hevery.com/code-reviewers-guide/flaw-brittle-global-state-singletons/
Существует приблизительно одна лучшая практика относительно использования глобальных переменных.
"Не делайте".
(Если это звучит резким, полагайте, что вещи как CurrentUser обычно принадлежат чего-то, из чего среда уже поддерживает уникальный экземпляр для Вас, такой как Сессия. Ищите API, чтобы получить текущую сессию, сохранить Ваш CurrentUser там и получить его оттуда. Не создавайте свой собственный globals, который представит Ваше приложение тяжелее для поддержания и уязвимый для условий состязания.)
Можно сохранить глобально доступные переменные как общедоступные статические свойства только для чтения соответствующего класса, такие как тот, который создает или заполняет его.
Шаблон "одиночка" более безопасен, чем глобальное разнообразие сада.
Моя практика состоит в том, чтобы поместить глобальные переменные, такие как CurrentUser , ConfigFilePath и аналогичные, в program.vb (класс запуска с подглавой ]). Таким образом, никто не использует глобальные переменные бездумно, поскольку доступ к ним должен осуществляться через пространство имен program .
В бизнес-логике я никогда не использую глобальные переменные напрямую. Если какой-либо функции необходимо использовать глобальную переменную, он должен быть отправлен как параметр функции.
Невозможно избежать использования глобальных переменных. ИМХО, лучше называть их настоящим именем и использовать их осторожно, чтобы затем замаскировать их в синглтонах, сессиях или файлах.