2014-08-30 1 views
1

La section docs Browserify sur external requires montre comment faire un module dans un paquet disponible pour l'environnement mondial:Browserify externe requis avec Grunt-Browserify

browserify -r through -r duplexer -r ./my-file.js:my-module > bundle.js 

Mais je ne parviens pas la configuration que cela fonctionne avec Grunt -Browserify.

Le drapeau -r semble correspondre à l'option require dans Grunt-Browserify, mais le docs description for this option ne fait aucune mention nécessite externe ou l'exportation d'une fonction require().

Dans mon Gruntfile, j'ai essayé de régler l'option require au module que je dois exposer (ce qui est déjà dans le paquet, en passant):

options: { 
    require: ['./dev/js/foomod.js'], 
} 

Et puis dans mon script de la page, J'essaie de require() le module comme indiqué dans la documentation:

<script> 
    var Foomod = require('./foomod.js'); 
    Foomod.init({foo: 'bar'}); 
</script> 

Mais que les journaux l'erreur require is not defined.

Mon objectif est d'appeler la méthode init() du module comme indiqué afin que je puisse transmettre des données d'exécution sans les mettre dans un window global.

Répondre

0

En utilisant la version 5.11.1 et browserify grognement browserify la version 3.0.1, j'ai réussi à obtenir une configuration similaire au travail:

options:{ 
    preBundleCB: function (b) { 
    b.require("./dev/js/foomod.js",{expose: 'foomod'}); 
    } 
} 
+0

donc une fois que vous le mettre en place sur les options sous browserify tâche, exigent la fonction était défini globalement? J'ai juste fait ce que vous avez mentionné, et j'ai toujours l'erreur "Uncaught ReferenceError: require is not defined" en essayant d'exiger les fichiers de ma page d'index – pixshatterer

+0

Avez-vous utilisé require ("foomod")? –

+0

J'ai un 'app.js' qui est le bundle, à l'intérieur il y a un 'initialize.coffee' - j'utilise déjà Coffeeify pour la transformation - et j'utilise require ('initialize') sans aucun effet , puisque 'require' semble être encore indéfini – pixshatterer