Laravel Elixir: Как минимизировать файлы?
Я хочу использовать Laravel Elixir для минимизации моих файлов css/files. Но я не хочу использовать mix-methode и объединять их. Все, что я хочу, это создать файл custom.min.js из моего оригинального "custom.js". Есть ли способ сделать это с помощью Elexir?
EDIT:
Чтобы сделать его более ясным: моя самая большая проблема заключается в том, что у меня есть две папки в "resources/assets": js и css. Поэтому я в основном хочу минимизировать все файлы там, и их минимизировать в "public/js" и "public/css".
Ответы
Ответ 1
Цитата из документации Laravel:
Примечание. Все задачи предполагают среду разработки и исключают ее. Для производства используйте gulp --production
.
Это означает, что если вы хотите, чтобы файлы были сокращены, запустите gulp --production
вместо gulp
. Это лучше, чем включение сжатия непосредственно в файл gulp и позволяет отлаживать ваши скомпилированные файлы при разработке приложения.
Если вы хотите, чтобы они были помещены в public/assets/css
, используйте путь как второй параметр:
mix.less('app.less', 'public/assets/css');
Ответ 2
gulp - производство.
Ответ Джеффри на вопрос здесь: https://laracasts.com/discuss/channels/elixir/elixir-doesnt-minify
Или вы можете найти его в документации. Наслаждайтесь кодированием!
Ответ 3
Если вы просто хотите скопировать файлы .css
, не используя LESS или SASS, и не хотите комбинировать файлы (т.е. хотите что-то вроде метода copy()
с возможностью минимизации), вы можете использовать метод для объединения, styles()
, вызывая его для каждого файла .css
и передавая строку имени файла без массива, например:
mix.styles('some.css');
mix.styles('node_modules/bootstrap/dist/css/bootstrap.css', null, './');
То же самое можно сделать для файлов .js
с помощью метода scripts()
:
mix.scripts('some.js');
mix.scripts('node_modules/bootstrap/dist/js/bootstrap.js', null, './');
И затем вы можете использовать gulp
(не уменьшает, создает файлы .map
) или gulp --production
(создает миниатюрные файлы), как указано в предыдущих сообщениях.
Ответ 4
Прямо из документов Laravel/Elixir:
Elixir is built on top of Gulp, so to run your Elixir tasks you only need to run the gulp command in your terminal. Adding the --production flag to the command will instruct Elixir to minify your CSS and JavaScript files:
Run all tasks... gulp
Run all tasks and minify all CSS and JavaScript... gulp --production
docs: https://laravel.com/docs/5.3/elixir#running-elixir