Невозможно отделить общедоступный от частных пакетов - PullRequest
0 голосов
/ 22 октября 2018

Итак, я использовал менеджер пакетов Yarn в своем проекте Laravel для загрузки общедоступных библиотек javascript, таких как jQuery и bootstrap.Мой конфигурационный файл .yarnrc содержит одну строку для указания каталога модуля, чтобы все пакеты были доступны сразу.

--modules-folder public/components

Это шло отлично, пока я не решил ввести node-sass в свой проект, который является внутренним пакетом..

Моя проблема в том, что node-sass, включая все его зависимости, попадает в мою папку public / components.В идеале я бы использовал Yarn только для моих общедоступных пакетов и npm для своих внутренних пакетов (что в конечном итоге оказалось бы в node_modules в корне моего проекта).Но они оба используют один и тот же файл package.json.

Есть ли способ разделить эти менеджеры пакетов?Или я поступаю совершенно неправильно.

1 Ответ

0 голосов
/ 22 октября 2018

Как я уже упоминал в своем комментарии, это очень странный способ настроить вещи.Обычно вы делаете это:

  1. Используйте один менеджер пакетов (NPM или Yarn), потому что их смешивание обычно не работает хорошо.NPM использует package-lock.json, а пряжа использует yarn.lock, чтобы определить, какую версию пакета загрузить, чтобы вы могли столкнуться с несоответствиями зависимостей.
  2. Используйте webpack для создания пакета, так как вы используете Laravel, вам следует использовать Laravel Mix
  3. При необходимости вы можете извлечьпакеты поставщиков для создания пакетов, которые с большей вероятностью попадут в кеш браузера.
  4. Вы также можете использовать SCSS для своих таблиц стилей

Laravel Mix обеспечит, чтобы только минимальныйтребуемые файлы фактически включены в комплект, кроме того, источники могут быть уменьшены, и вы также можете установить целевые версии браузера для переноса нового синтаксиса ES 6 в совместимый JavaScript.

Основные причины не помещать модули непосредственно в общую папку:

  1. Вам нужно будет загружать их как модули, однако IE не позволяет этого вообще.
  2. В конечном итоге вы поместите все зависимости и dev-зависимости этих модулей в общую папку, которая является ненужной.

В целом, я думаю, что лучше собирать ваши активы.

...