Я разрабатываю библиотеку A и библиотеку B, B в зависимости от A. Я хотел бы, используя браузер, объединить их самостоятельно, поэтому в моем браузере я мог бы сделать:Обозревайте, чтобы загружать зависимости из глобальной потребности области, а не ожидая, что они будут объединены вместе.
var A = require("A");
var B = require("B");
Я хотел бы связать их независимо друг от друга, как я также разработки библиотеки C, что только зависит от а и а входит в B, то он не будет доступен C, и если A находится в B и C, у меня есть дубликаты.
Так я начинаю с библиотекой browserifying A:
browserify -r ./src/A.js:A -o build/A.js
Который работает прекрасно, я могу распространять и другие люди могут разрабатывать свои приложения с ней.
Тогда я browserify библиотеки B:
browserify -r ./src/B.js:B -o build/B.js
Но теперь у меня есть два раза, А загружаемый самостоятельно в браузере и еще раз в комплекте с Б. Так я использую опцию -i из browserify, чтобы предотвратить это от включения:
browserify -r ./src/B.js -o build/B.js -i A
Но тогда, когда B требует A, он получает пустой объект {} вместо библиотеки. Библиотека A хотя по-прежнему доступна из глобальной области, требуя («A»).
Я попробовал внешнюю вещь с -x, но тогда я больше не могу требовать мою библиотеку из глобального пространства.
Мне удалось получить поведение, которое я хотел, взломав сгенерированный вывод B, вынудив разрешение модуля получить A от предыдущего запроса, что заставляет меня думать, что может быть простое решение, но я не могу Найди это.
Я использую browserify 2.18.1
-x, --external должно быть тем, что вы ищете. Смотрите: https://github.com/substack/node-browserify#multiple-bundles – Epeli
@Epeli, я попробовал вариант --external, но, похоже, он не действует, поскольку A все еще находится в B. Я попытался дать имя модуля: 'browserify -x A -r ./src/B.js:B -o build/B.js' или указывая на файл: 'browserify -x node_modules/A/A.js -r -o ./src/B.js:B построить/B.js' Любая идея, что -x может принимать как действительный вход? Моя проблема, похоже, связана с этой проблемой в [browserify's GitHub] (https://github.com/substack/node-browserify/issues/404). – Olivier
afaik должен принимать путь к js-файлу и имени модуля. – Epeli