-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error en integración con NextJS #71
Comments
Parece ser un problema relacionado con NextJS y Webpack. Cuando se realiza el bundling, Webpack incluye el código necesario tanto de la ruta que definiste como el de afip.ts, pero en este proceso no se incluyen los archivos WSDL necesarios para la ejecución de los servicios. Deberías ver cómo modificar la configuración de Webpack para que esos archivos sean incluidos en el build. O en todo caso, se podría modificar la forma en que afip.ts utiliza/carga esos archivos. |
Si, estuve trasteando un poco con esto pero ando de viaje. La proxima semana quiza pueda dedicarle un poco mas de tiempo! Gracias por el punto de vista. |
Para el siguiente release debería estar solucionado, ya estamos barajando una solución. |
En un principio el package fue pensado para que sea usado desde un backend, pero para que este pueda ser usado desde aplicaciones frontend, debemos hacer algunos cambios. |
Estuve probando un rato, y con este import fs from 'fs';
import path from 'path';
/** @type {import('next').NextConfig} */
const nextConfig = {
webpack: (config, { isServer }) => {
if (isServer) {
const wsdlSourcePath = path.resolve('./node_modules/afip.ts/lib/soap/wsdl');
const wsdlDestinationPath = path.resolve('.next/server/vendor-chunks/wsdl');
const copyFiles = (src, dest) => {
if (fs.existsSync(src)) {
fs.mkdirSync(dest, { recursive: true });
fs.readdirSync(src).forEach(file => {
const srcFile = path.join(src, file);
const destFile = path.join(dest, file);
if (fs.statSync(srcFile).isFile()) {
fs.copyFileSync(srcFile, destFile);
}
});
} else {
console.error(`El directorio fuente ${src} no existe.`);
}
};
copyFiles(wsdlSourcePath, wsdlDestinationPath);
}
return config;
},
};
export default nextConfig; Quiza podriamos agregaro en la documentación en un apartado especifico para NextJS? |
Next.js ofrece una solución para estos casos con la propiedad /** @type {import('next').NextConfig} */
module.exports = {
experimental: {
serverComponentsExternalPackages: ['afip.ts'],
},
}; https://nextjs.org/docs/app/api-reference/next-config-js/serverComponentsExternalPackages Puedo confirmar que esta solución funciona al usar la librería en Server Actions. |
Describe the bug
Al querer utilizar el paquete en una server-action o un router-handler, obtengo el siguiente error:
To Reproduce
Steps to reproduce the behavior:
Screenshots
Desktop (please complete the following information):
Additional context
No hay nada en especial en el bundle, es una aplicacion limpia. Quiza este relacionado con la forma de buiildear la libreria.
The text was updated successfully, but these errors were encountered: