Browserify: использование внешних библиотек из комплекта

Наша команда разрабатывает браузер javascript приложение. Мы используем angularjs в качестве фреймворка и некоторых вспомогательных библиотек в глобальном пространстве имен. Например: underscore,

Мы сделали большой кусок кода (преобразование входных / выходных данных) в автономную библиотеку по причинам модульного тестирования.

Теперь я пытаюсь использовать browserify с этой библиотекой. Вопрос в том, что лучше всего исключить из общего пакета (с основным приложением) зависимостей (например, подчеркивание). Я попробовал 2:

  1. Использование - external. Я должен создать пакет из подчеркивания и использовать его для всего кода в приложении. Если я правильно понял, этот путь кажется неудобным.
  2. С помощью browser свойство в package.json для замены подчеркивания заглушкой:

    module.exports = _;

Я считаю, что есть более чистый подход, но где он?

1 ответ

Вам не нужно использовать --external или что-то типа того. Просто включите библиотеку так:

<script src="external/lib.js"></script>

тогда вы можете использовать его в вашем комплекте (без require).

НО: На мой взгляд, вы не должны смешивать глобальные библиотеки с browserify, Все преимущества browserify будет резко уменьшаться таким образом.

контрас:

  • более одного файла для включения
  • худшая читаемость вызывает меньше операторов `require`

РЕКОМЕНДУЮ:

Создайте один пакет со всеми внешними библиотеками и установите их как модули npm.

npm install --save angular
npm install --save lodash

создать внешний пакет:

browserify -r angular -r lodash > external/libs.js

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

browserify --no-bundle-external app.js > bundle.js

затем включите эти две связки на свою страницу:

<script src="external/libs.js"></script>
<script src="bundle.js"></script>
Другие вопросы по тегам