Я начал использовать laravel-mix в моем новом проекте Laravel 5.7 для компиляции всех js / css в один файл, который будет отображаться в моем общедоступном каталоге js / css (по одному на каждую страницу) следующим образом:
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.js('resources/js/create.member.js', 'public/js/backend/members')
.sass('resources/sass/create.member.scss', 'public/css/backend/members')
.sourceMaps();
Таким образом, я хочу сохранить представления в чистоте и уменьшить количество ресурсов, которые должны быть загружены.
Пока все отлично, и я понимаю, как работать с laravel-mix. Теперь я установил некоторые пакеты, в частности cropperjs и summernote, через npm, в мой каталог node_modules.
Сбой, когда я импортирую / требую их scss / js в сценарии, которые будут скомпилированы и размещены публично с помощью laravel-mix, потому что кажется, что эти сценарии (cropper.js, summernote.scss и т. Д ... ) ссылаются на другие ресурсы в каталоге их исходного пакета в каталоге node_modules (шрифты, изображения и т. д.) *
Для JS я делаю:
require('../../node_modules/cropperjs/dist/cropper.js');
require('../../node_modules/summernote/dist/summernote.js');
Для SCSS я делаю:
@import '~cropperjs/src/css/cropper';
@import '~summernote/src/less/summernote-bs4';
У меня такой вопрос: что является хорошей практикой при использовании пакетов, установленных с npm?
Должен ли я поместить весь каталог пакета в мой публичный каталог?
Связать ли я с активами в каталоге пакета, который находится в каталоге node_modules?
Или у них есть шанс скомпилировать их вместе с другими моими активами через laravel-mix / webpack, возможно, флаг, который я пропускаю или так?
Нужно ли мне использовать какое-либо дополнительное программное обеспечение, такое как Bower, чтобы все произошло?
Большое спасибо за то, что осветлили мой горизонт!