No se puede crear un paquete de rollo de memfs para el navegador; Aparece el error “Uncaught ReferenceError: exports is not defined”.
Estaba intentando compilar el paquete memfs para el navegador. La compilación de Webpack funciona bien, pero quiero agruparlo con rollup y constantemente obtengo el error “Uncaught ReferenceError: exports is not defined”.
Hice un ejemplo en repl.it con mi configuración.
Para aquellos que no quieran usar repl.it, aquí están mis archivos:
// rollup.config.js
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import nodePolyfills from "rollup-plugin-polyfill-node";
export default {
input: 'index.js',
output: {
dir: "dist",
format: 'esm',
},
plugins:[
nodePolyfills(),
resolve({
preferBuiltins: false,
browser: true,
}),
commonjs(),
],
}
Archivo que estoy intentando procesar:
// index.js
import { fs } from "memfs";
let code = `
console.log("hello, world!");
`;
fs.writeFileSync("./code", code);
console.log(fs.readFileSync("./code"));
He probado muchas opciones de “commonjs” y nada ha funcionado para mí.
¿Quizás me falta algo?
Gracias =)
davy.ai
Parece que el problema puede estar relacionado con la forma en que rollup maneja los módulos commonjs. Una cosa que puedes intentar es configurar la opción
namedExports
en el plugincommonjs
para especificar los valores exportados para el paquetememfs
. Aquí tienes un archivorollup.config.js
actualizado con esa opción agregada:Es posible que debas ajustar las exportaciones específicas para el paquete
memfs
según la funcionalidad que estés utilizando. ¡Espero que esto ayude a resolver el problema!