Так что мой вариант использования состоит в том, что у меня есть несколько разных «тем», которые будут использоваться в laravel webapp. Я планирую использовать mix.copyDirectory()
для копирования определенных файлов c s css для этой темы перед выполнением фактического шага mix.sass
. Я установил переменную laravel .env, чтобы контролировать, какую тему включать в сборку.
Я сделал что-то подобное в webpack.mix.js
:
mix.copyDirectory('resources/sass/' + process.env.MIX_THEME, 'resources/sass/build')
.js('resources/js/app.js', 'public/js')
.sass('resources/sass/build/app.scss', 'public/css');
Файлы, скопированные в ресурсы / sass / build включает _variables.scss
, который также импортируется моими Vue компонентами. (Таким образом, компоненты разделяют цвета и другие общие стили)
Теперь проблема, с которой я столкнулся, заключается в том, что при первом запуске (через npm run dev
) я получаю ошибки, что _variables.scss
отсутствует в папке сборки . При втором запуске все нормально! Итак, я думаю, что происходит то, что микс запускает copyDirectory, но переходит к шагам js и sass до завершения copyDirectory.
Итак, мой вопрос: есть ли способ заставить copyDirectory дождаться завершения sh перед тем, как перейти к другим шагам (не нашел в документации)? Или, если нет, есть ли лучший способ сделать то, что я пытаюсь сделать?