Sto sviluppando la libreria A e la libreria B, B in base a A. Vorrei utilizzare browserify per raggrupparle in modo indipendente, quindi nel mio browser che potevo fare:Browserify per caricare le dipendenze dall'ambito di applicazione globale invece di aspettarsi che vengano raggruppate insieme
var A = require("A");
var B = require("B");
vorrei raggruppare loro in modo indipendente come sto anche lo sviluppo di libreria C che dipende solo a e se a è incluso in B allora non sarà accessibile da C, e se A è in B e C, ho dei duplicati.
Così iniziamo con biblioteca browserifying A:
browserify -r ./src/A.js:A -o build/A.js
che funziona perfettamente bene, posso distribuire A e altre persone possono sviluppare le proprie applicazioni con esso.
Poi ho browserify biblioteca B:
browserify -r ./src/B.js:B -o build/B.js
Ma ora ho un due volte, un essere caricato in modo indipendente nel browser e ancora una volta confezionato con B. Quindi io uso l'opzione -i da browserify per prevenire che venga incluso:
browserify -r ./src/B.js -o build/B.js -i A
Ma poi, quando B richiede A, si ottiene un oggetto vuoto {} al posto della biblioteca. La libreria A è ancora disponibile dall'ambito globale facendo require ("A").
Ho provato la cosa di esternalizzazione con -x ma non posso più richiedere la libreria dall'ambito globale.
Sono riuscito a ottenere il comportamento che volevo hackerando l'output generato di B, costringendo la risoluzione del modulo a ottenere A da una richiesta precedente, il che mi fa pensare che ci possa essere una soluzione facile, ma non posso Trovalo.
sto usando browserify 2.18.1
-x, --external dovrebbe essere quello che stai cercando. Vedi: https://github.com/substack/node-browserify#multiple-bundles – Epeli
@Epeli, ho provato con l'opzione --external ma sembra non avere alcun effetto poiché A è ancora in B. Ho provato dando il nome del modulo: 'browserify -x A -r ./src/B.js:B -o build/B.js' o puntando al file: 'browserify -x node_modules/A/A.js -r ./src/B.js:B -o costruire/B.js' Qualche idea di cosa -x può accettare come input valido? il mio problema sembra riguardare questo problema su [GitHub di browserify] (https://github.com/substack/node-browserify/issues/404) – Olivier
afaik dovrebbe accettare il percorso di un file js e un nome di modulo. – Epeli