Laravel Mix JS объединяет все файлы JS - PullRequest
0 голосов
/ 11 мая 2018

Как мне объединить все мои файлы js в один файл с миксом laravel? и является ли хорошей практикой прямое хранение загруженных внешних js-файлов плагинов и CSS-файлов в публичном каталоге? потому что у нас есть папка js, уже находящаяся в папке ресурсов, и она собирается и сохраняется в общедоступном каталоге, когда мы выполняем npm run production, не уверен, правильно ли это или нет.

Вот так выглядит папка моего ресурса:

enter image description here

И мой файл app.js выглядит так:

enter image description here

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Вы можете использовать npm, чтобы установить jquery и сделать то же самое с jeff

window.$ = require('jquery');

ИЛИ, но если у вас есть свой собственный скрипт, который хотите включить, тогда

просто поставьте его сверхуvue instance

require('./jquery.js') //based on your picture it jquery and app.js are in same level 


window.vue = require('Vue')

, он будет автоматически прочитан и скомпилирован npm.

0 голосов
/ 12 мая 2018

вы можете добавить их из npm или, если это внешние плагины, как в моем случае, вы можете сделать это

mix.js('resources/assets/js/app.js', 'public/js')
 .scripts([
          "path/plugin1.js",
          "path/plugin2.js",
           .......
         ], 'public/js/all.js').styles([
          "path/plugin1.css",
          "path/plugin2.css",
          .....
         ],'public/css/all.css');

для получения дополнительной полезной информации, которую вы можете посетить: https://laravel.com/docs/5.6/mix

0 голосов
/ 11 мая 2018

Вы можете включить эти библиотеки, установив их, например, в NPM с npm install jquery. Тогда в вашем файле bootstrap.js будет что-то вроде:

window.jQuery = window.$ = require('jquery');

Это сделает его доступным в окне, и тогда у вас останется только один файл js для включения в клиент (ваш скомпилированный файл app.js).

Если у вас есть файл, который вы хотите отделить от основного пакета, и он не был загружен через NPM, то неплохо было бы поместить его прямо в общую папку. Я бы оставил их в /resources/assets/js/vendor и затем использовал бы mix.copy, чтобы переместить их в /public/js/vendor. Это потому, что я предпочитаю, чтобы все мои работы были в resources и чтобы public были всеми скомпилированными или скопированными файлами.

...