Понимание Laravel Mix

Понимание Laravel Mix

В настоящее время я переношу один из моих сайтов в Laravel, чтобы сделать его немного более удобным в будущем... У меня есть много опыта разработки API с Laravel, но у меня очень ограниченный опыт создания сайтов с Laravel и в результате я нуждаюсь в небольшом совете от другого профессионала.

Короче говоря, я очень благодарен за ответы на следующие очень простые вопросы, если кто-то может избавить меня от нескольких минут...

Основанные на файлах JS и CSS вместо основанного на приложении

Мне нравится писать мои файлы JS и CSS определенным образом, где каждая страница имеет свои собственные файлы, относящиеся к странице. Например, about.php может иметь следующие зависимости:

JS:

  • jquery.js
  • any_other_third_party_library.js
  • app.js (глобальные функции)
  • about.js (специальные функции страницы)

CSS

  • some_third_party_library.css
  • app.css (глобальные стили)
  • about.css (стили, специфичные для страницы)

В моей собственной структуре вышеупомянутое было объединено и обобщено в один файл для JS и один файл для CSS. Из того, что я понимаю, Laravel Mix делает именно это...

Однако, насколько я вижу, способ сделать это будет следующим:

webpack.mix.js:

// About
mix.scripts([
    'resources/assets/js/app.js',
    'resources/assets/js/about/about.js'
], 'public/js/about/about.js');

Очень просто, что я хотел бы знать; вернее ли это? Есть ли лучший, более эффективный способ автоматизировать это для каждой страницы?

Каковы файлы bootstrap.js и app.js?

Из того, что я вижу, эти файлы просто загружают зависимости, но это немного запутывает, поскольку некоторые зависимости могут быть специфическими для страницы... Пожалуйста, кто-нибудь может объяснить немного более подробно, для чего эти файлы? Или, по крайней мере, какая разница между ними...

Избавление от Vue

Я не заинтересован в использовании Vue в моем проекте, поэтому я удалил следующие файлы:

/components/Example.vue Код vue в app.js

Это имеет значение в любом случае?

Ответ 1

Вы объедините все свои стили и сценарии по одному файлу каждый и подадите их клиенту, который был изменен.

Для активов переднего плана вызовите mix.sass('resources/assets/sass/app.scss'). В этой точке входа в ваши стили вы сможете импортировать свои другие таблицы стилей, как вам нужно, используя синтаксис Sass @import 'about';. (Переименуйте другие файлы CSS, чтобы они закончились в .scss).

Для ваших задних активов вызовите mix.js('resources/assets/js/app.js'). Затем аналогичным образом вы можете импортировать другие модули JavaScript, используя import './about.js';. Возможно, вам захочется найти модули ES2015, чтобы вы могли научиться писать модульный JavaScript.

Прочитайте файл bootstrap.js, чтобы узнать, как Laravel подключает jQuery и Vue по умолчанию. Вам ничего не нужно, поэтому удалите все, что вам не нужно, или удалите весь файл, если вам это не нужно.

Vue выходит из коробки с Laravel, но это всего лишь предложение, вы можете заменить его своей собственной каркасом переднего края или вырвать его и заменить его ничем. До вас.

Изменить: длинный рассказ; используйте mix.sass и mix.js, прочитайте с использованием модулей Sass и ES2015 для написания удивительного кода.