sto considerando l'adozione di browserify per alcuni dei miei progetti, ma vorrei fare in modo che gli altri non hanno di utilizzare browserify se vogliono utilizzare il (in bundle) codice. Il modo più ovvio per farlo è quello di esporre i moduli all'esportazione attraverso module.exports
e attraverso uno window.
globale. Tuttavia, preferisco non inquinare lo spazio dei nomi globale per coloro che sono require
nello script.Browserify: Utilizzare module.exports se necessario, in caso contrario esporre globale
È possibile rilevare se uno script è in fase di require
d? Se lo è, allora avrei potuto fare qualcosa di simile:
var mymodule = (function() { ... })();
if (isRequired()) {
module.exports = mymodule;
} else {
window.mymodule = mymodule;
}
Si noti che non importa cosa, questo sarà in bundle in anticipo, in modo che il var mymodule
non sarà esponendo una globale. Inoltre, attualmente sto usando lo revealing module pattern, ma sarei disposto a passare a qualcosa di più appropriato per browserify.
Qual è il modo migliore per rendere un modulo sia require
in grado e <script src=
in grado? È meglio esporre un globale in entrambe le circostanze?
Browserify rende 'module',' module.exports' e 'require' disponibili per tutti i file in bundle. Quindi, solo il mio bundling rende quelli disponibili. Grazie per la risposta. –