Cómo ejecutar la misma aplicación Node.js que una aplicación de consola y también una aplicación de navegador

Intente usar SystemJS, Webpack o Browserify para crear una compilación a partir del código de su aplicación Node.js para que se pueda ejecutar en el navegador.

Sin embargo, tendrá que shim / polyfill como gran parte de los módulos centrales de Node.js, especialmente fs que realiza llamadas al sistema de archivos.

Actualmente estoy trabajando en lo mismo. Tengo que crear polyfills personalizados para mi caso de uso. Si me das más información sobre qué aplicación estás tratando de “buscar en el navegador”, puedo ayudarte más.

Aquí hay un comienzo

Object.map = function (obj, fn) {
const ret = {};
para (dejar clave en obj) {
if (obj.hasOwnProperty (clave)) {
ret [clave] = fn.call (nulo, clave, obj [clave]);
}
}
volver ret;
};

let path = require (‘ruta’);
let Builder = require (‘systemjs-builder’);
const deps = pkg.dependencies;

función getPaths () {
return Object.map (deps, function (k, v) {
return require.resolve (k);
});
}

let builder = new Builder (__ dirname, {
caminos: getPaths (),
paquetes: {
‘ascii-table’: {
main: ‘index.js’}
}
});

let src = path.resolve (__ dirname + ‘/browser-polyfills/dest/all-core-and-npm.js’);
let dest = path.resolve (__ dirname + ‘/dist/outfile.js’);

builder.bundle (src, dest)
.then (function () {
console.log (‘Compilación completa’);
})
.catch (función (err) {
console.log (‘Error de compilación’);
console.log (err);
});