laravel mix компилирует ресурсы из пакета в node_modules? - PullRequest
0 голосов
/ 02 ноября 2018

Я начал использовать 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, чтобы все произошло?

Большое спасибо за то, что осветлили мой горизонт!

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Вы не должны компилировать ресурсы узла в webpack.mix ... Как сказал barghouthi, обычно документация пакета говорит вам, как импортировать пакет в ваш файл js.

0 голосов
/ 02 ноября 2018

Для JS я просто использую

import 'vue'
import 'cropperjs'

Обычно в документации пакета указывается, как ее импортировать.

...