вообще 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