Browserify: использование внешних библиотек из комплекта
Наша команда разрабатывает браузер javascript
приложение. Мы используем angularjs
в качестве фреймворка и некоторых вспомогательных библиотек в глобальном пространстве имен. Например: underscore
,
Мы сделали большой кусок кода (преобразование входных / выходных данных) в автономную библиотеку по причинам модульного тестирования.
Теперь я пытаюсь использовать browserify
с этой библиотекой. Вопрос в том, что лучше всего исключить из общего пакета (с основным приложением) зависимостей (например, подчеркивание). Я попробовал 2:
- Использование - external. Я должен создать пакет из подчеркивания и использовать его для всего кода в приложении. Если я правильно понял, этот путь кажется неудобным.
С помощью
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>