gulp - Come scoprire "Impossibile trovare il modulo X" proveniente dai bundle browserizzati?




babeljs browserify (2)

Questo suona molto simile a un problema che ho incontrato alcuni anni fa (e sì, è difficile da descrivere :))

Non ho mai avuto una risposta, ma forse avresti miglior fortuna. La soluzione alla quale sono arrivato è stata quella di non tentare di re-browserizzare le librerie già-browserizzate; Ho finito per concatenarlo e ministrare l'intero pacchetto in seguito.

Modalità disperata: ho provato molte diverse configurazioni e tutte sono fallite. Ho un bundle browserified + babelified chiamato videomail-client.js qui:

https://github.com/binarykitchen/videomail-client/tree/develop/dist

La voce principale di package.json di quel pacchetto punta a questo file.

Ora, quando require() quel pacchetto da un altro progetto all'interno e lo browserifico, allora vedo questo errore dal task gulp usando browserify:

[16:26:32] Error: Cannot find module './keys' from '/home/michael-heuberger/code/videomail.io/node_modules/videomail-client/dist'
    at /home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:55:21
    at load (/home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:69:43)
    at onex (/home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:92:31)
    at /home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:22:47
    at FSReqWrap.oncomplete (fs.js:152:21)

Hmnmm, sembra complicato? Fammi riformulare. Il pacchetto videomail-client è browserizzato. Un altro progetto, videomail.io, lo richiede e lo converte in un insieme di browser con altri pacchetti. È lì che fallisce.

Una nota a margine, quando eseguo esempi standalone usando videomail-client.js, funziona perfettamente.

Penso che il problema è che browserify non può risolvere il file ./keys . Ma dovrebbe essere incluso nel pacchetto videomail-client.js browserificato e risolto da lì. Come posso dire a browserify di risolverlo nel modo corretto?

I suggerimenti accolgono con favore come posso indagare e sistemare questo meglio. Grazie!!


La soluzione ha due passaggi: utilizza l'opzione standalone di browserify e il pacchetto gulp-derequire . Ora funziona.