Deseo poder importar mi biblioteca con múltiples puntos de entrada (como ABC/X, ABC/Y, ABC/Z). Pude hacer lo mismo con la ayuda del complemento 'rollup-plugin-multi-input'.
Pero ahora también deseo compilarlo tanto en ECMA como en CommonJS. No he podido encontrar ninguna documentación relevante para esto, y la mayoría de los resultados que obtengo son para importaciones desde la biblioteca (como import {x} from "abc"). Ninguna compilación de CJS me crea problemas en las pruebas de React.
¿Cómo proporciona múltiples puntos de entrada al mismo tiempo que compila en ECMA y CommonJS?
Tengo esto en un par de proyectos que agrego para entornos de nodos y navegadores.
Opcionalmente, primero, en su package.json
, asegúrese de tener un conjunto main
y de module
como este:
{ "main": "package-cjs.js", "module": "package-esm.js" }
Esto se usará para nombrar los paquetes y es una mejor alternativa a codificar los nombres.
Luego, en su rollup.config.js
, debería verse como lo siguiente (tenga en cuenta que no sé cómo se ve su entrada, por lo que puede dejar la suya como está si es diferente).
import pkg from "./package.json"; import commonjs from "rollup-plugin-commonjs"; export default { input: "./src/index.ts", external: [], plugins: [ commonjs(), ], output: [{ file: pkg.main, format: "cjs", exports: 'default' }, { file: pkg.module, format: "esm", }], };
Tenga en cuenta que en la propiedad de file
de cada exportación usamos el nombre del package.json
. También puede configurar esto como una cadena si no desea realizar ese paso.
Ahora, cuando ejecute su compilación de resumen, debería ver paquetes tanto para el módulo principal como para el módulo.