Estoy usando rollupjs y mi función "clonar" aparece en el index.js generado pero no en la exportación de la línea inferior. Esto significa que los clientes no pueden acceder a él.
He notado que tsc está funcionando porque está incluido en el archivo de declaración mecanografiado
mi archivo de configuración acumulativo
const packageJson = require("./package.json"); const EXTERNAL = Object.keys(packageJson.devDependencies); let includePathOptions = { include: {}, paths: ['src/components', 'src/utils'], external: EXTERNAL, extensions: ['.ts', '.tsx', '.html'] }; export default [ { input: "index.ts", output: [ { file: packageJson.module, format: "esm", sourcemap: true, }, ], plugins: [ includePaths(includePathOptions), peerDepsExternal(), resolve(), commonjs(), typescript({ tsconfig: "./tsconfig.json" }), ], external: EXTERNAL }, { input: "dist/esm/types/index.d.ts", output: [{ file: "dist/index.d.ts", format: "esm" }], external: EXTERNAL, plugins: [dts()], }, ];mi función de clonación es así:
import { CloneMode } from "./enums"; const clone = <T>(obj: T, mode?: CloneMode) : T => { // if it's deep we'll write it out as a sting then rencode it if (mode == CloneMode.Deep) { return JSON.parse(JSON.stringify(obj)); } else { if (obj instanceof Array) { if (mode == CloneMode.Iterate) { let tmp: any[] = [] obj.forEach((elem) => tmp.push(elem)) //@ts-ignore : This will work return tmp; } else { return JSON.parse(JSON.stringify(obj)); } } else { return { ...obj }; } } } export { clone }¿Cómo se genera la exportación del resultado final? y ¿cómo puedo hacer que index.js sea el mismo que index.d.ts?