que online babelify javascript browserify

javascript - online - bundle js



Cómo realizar una transformación en el módulo npm usando browserify (2)

Obtuve un poco de ayuda de substack (autor de browserify) en este caso. Para especificar si un módulo fuera de un proyecto requiere transformaciones, debe especificar una matriz browserify.transform en su package.json . Así que para el ejemplo que he dado anteriormente, el archivo package.json en el directorio testmodule ve así:

{ "name":"testmodule", "version":"0.0.0", "browserify": { "transform": ["brfs"] }, "main": "index.js" }

De forma predeterminada, browserify no realiza transformaciones en módulos incluidos desde node_modules, es decir, sin ruta.

Hice un repo de github rápido que lo ilustra here . El archivo index.js que obtiene browser se ve así:

var fs = require(''fs''); var testmodule = require(''testmodule''); var trg1 = document.getElementById("target1"); var trg2 = document.getElementById("target2"); trg1.innerHTML = fs.readFileSync(__dirname+"/something.txt"); trg2.innerHTML = testmodule();

testmodule ve así:

var fs = require(''fs''); exports = module.exports = function() { return fs.readFileSync(__dirname+''/data.txt''); }

Usando el módulo de transformación brfs , quiero poder fs.readFileSync ambas llamadas a fs.readFileSync , pero cuando ejecuto browserify index.js -t brfs -o bundle.js , solo se browserify index.js -t brfs -o bundle.js la llamada en mi proyecto principal. Aquí está el resultado de bundle.js:

;(function(e,t,n){function r(n,i){if(!t[n]){if(!e[n]){var s=typeof require=="function"&&require;if(!i&&s)return s(n,!0);throw new Error("Cannot find module ''"+n+"''")}var o=t[n]={exports:{}};e[n][0](function(t){var i=e[n][1][t];return r(i?i:t)},o,o.exports)}return t[n].exports}for(var i=0;i<n.length;i++)r(n[i]);return r})({1:[function(require,module,exports){ // nothing to see here... no file methods for the browser },{}],2:[function(require,module,exports){ var fs = require(''fs''); var testmodule = require(''testmodule''); var trg1 = document.getElementById("target1"); var trg2 = document.getElementById("target2"); trg1.innerHTML = "This is data from a file in the main project folder"; // TRANSFORMED trg2.innerHTML = testmodule(); },{"fs":1,"testmodule":3}],3:[function(require,module,exports){ (function(__dirname){var fs = require(''fs''); exports = module.exports = function() { return fs.readFileSync(__dirname+''/data.txt''); // NO TRANSFORM } })("/node_modules/testmodule") },{"fs":1}]},{},[2]) ;


También puede usar browserify -g brfs lugar de browserify -t brfs . g es una transformación global (que se aplica a las dependencias)