Как собрать сложный проект на vue (с доп. модулями)? Правильно ли я это делаю?
Всем привет. Вопрос сложный.
Есть большой проект, написанный на Vue.js, scss, js. Его надо собрать в веб-приложение, чтобы запустить в контейнере. В проекте есть ещё свой собственный модуль для npm.
Главный вопрос- как всё это собрать?
Что я уже сделал:
1. Покурил gulp, настроил его, происходит сборка всего, чего надо;
2. Покурил webpack, он собирает всё остальное и мимимизирует код;
3. Покурил npm build и вот там возникает проблема.
Проблема в одном пакете для npm, который идёт вместе с проектом (в отдельной папке). Как его установить? npm build крашится именно на нём (не может найти).
Второй вопрос - правильно ли я выстраиваю сборку? Gulp + Webpack + npm run build? Конфиги все есть.
И последний - где можно прочитать про вот это всё сжато, кратко и ёмко? Какие-то книги? Гуглил, но попадаются только разрозненный статьи, а как правильно Гугл спросить, я не знаю.
Локальный модуль можно указывать через link: или через file:. В первом случае создаётся симлинк на модуль в node_modules, во втором модуль туда просто копируется. В первом случаем может не завестись по разным эзотерическим причинам, но если завелось - удобнее конечно использовать его.
Если же использовать не npm, а yarn - добавляются ещё удобные варианты:
1. yarn workspaces: вы кладёте несколько ваших модулей\приложений в один реп, и yarn собирает все зависимости в один node_modules и линкует использующийся модули туда же. В итоге отсутствует дубликация файлов и все модули работают с одними и теми же либами - что полезно в деве если используется расширение сторонних модулей. Очень удобно.
2. yarn link: это чисто локальная фишка для разработки, вы делаете yarn link в корне одного модуля и он регистрируется глобально, после чего в другом модуле где хотите использовать делаете yarn link "имя" и он линкуется.
Достаточно вебпака - он достаточно умен и умеет работать с различными файлами, если правильно настроить конфиг и подключить нужные лоадеры. Vue cli базируется именно на нем. Рекомендую просто взять vue cli и перенести проект на него и все будет хорошо
Игорь Прокофьев, попробуйте выполнить npm install в папке этого модуля
Ну а насчет webpack'а согласен, он тут единственный сборщик, и собирать из gulp/webpack/npm умеет только он.
И npm run и gulp являются таск-раннерами (запускалками задач если по русски), нет смысла заворачивать одно в другое.
Дмитрий Беляев, Алексей.
Я сделал немного по-другому - просто указал путь к каталогу с модулем в файле package.json основного проекта. Больше модуль не теряется.
Но команды ваши записал, спасибо.
Может, подскажете пару источников, где почитать про то, чем я, вообще, занимаюсь?