romash
@romash
web-разработчик

Как сделать js, css пакеты для Laravel?

Начал переносить старый проект на Laravel 5.4 и появилось желание вынести некоторые части js кода в отдельные пакеты, чтобы потом использовать в других проектах. И я что-то совсем запутался во всех этих npm, webpack, bower, elixir, laravel-mix и остальной куче инструментов...
Сначала думал, что лучше будет делать composer-пакеты, потому что тогда artisan за меня все файлы куда надо закинет при обновлении, но это кривота, потому что с зависимостями беда будет, и вообще composer для php, насколько я понимаю...
Потом решил, что видимо нужно создавать npm-пакеты, но тут уже я потерялся, пытаясь понять, как это для веб оформить (в смысле, как добавить туда ещё css)
Подскажите верное решение, или статью какую по оформлению своих пакетов и добавлению в проект.
  • Вопрос задан
  • 519 просмотров
Решения вопроса 1
stanislav-belichenko
@stanislav-belichenko
Backend PHP Developer
вообще composer для php

Нет, но в целом это верное решение, не использовать его для подобных целей, если только не будете внимательно следить за зависимостями.

видимо нужно создавать npm-пакеты, но тут уже я потерялся, пытаясь понять, как это для веб оформить


Тоже неверное решение, так как для таких целей использовать данный инструмент - все равно что стрелять из пушки по воробьям.

вынести некоторые части js кода в отдельные пакеты, чтобы потом использовать в других проектах


Еще раз по предыдущим пунктам - composer действительно собирает в основном для бекенда (условно движок), хотя и им можно забивать гвозди. NPM собирает для скорее опять же каких-то нужд бекенда, в том числе административных, например, через него ставится Bower. В том числе потому, что у него для каждого пакета в его папку подтягиваются все его зависимости, каждый раз для каждого пакета, даже если пакеты, от которых они зависят, являются общими.

А вот тот же Bower можно и нужно использовать для подтягивания пакетов для фронта. Elixir, laravel-mix - это все сборщики, как и тот же Gulp, они занимаются не установкой пакетов, а их преобразованием - например, минифицируют и конкатенируют файлы стилей или скриптов, это совершенно иные задачи.

Поэтому я бы вам предложил использовать Bower, но, опять же, не публиковать для него свои пакеты в общем доступе, если только они не имеют ценности для всего сообщества в целом (смысл загрязнять общую эко-среду), а использовать ваш личный Github или какой угодно другой ваш публичный сервер/etc. Подробнее о том, как устанавливать пакеты не из общего репозитория можно прочитать тут, но в целом там совсем всё просто:

# Git endpoint
$ bower install git://github.com/user/package.git
# URL
$ bower install http://example.com/script.js
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы