Estoy tratando de cargar una imagen para usarla con canvas en node.js. Siempre obteniendo un error de no encontrado. Aquí está el código:
const Canvas = require('canvas') async function execute() { const canvas = Canvas.createCanvas(1080, 611); const context = canvas.getContext('2d'); const license = await Canvas.loadImage('../../data/media/images/license.jpg'); context.drawImage(license, 0, 0, canvas.width, canvas.height); } execute(); De alguna manera funciona con la ruta del explorador ( P:\\bot stuff\\darling.js\\src\\data\\media\\images\\license.jpg ).
Lo que me confunde aún más es que const { color } = require('../../data/config.json'); funciona perfectamente bien, y eso en el mismo archivo...
Estructura de carpetas:
Node.js Versión 16.10; Windows 10 favorable 21H2
El comportamiento de require(...) siempre se resuelve según sus propias reglas en la ruta relativa del archivo mediante la función require.resolve(...) .
Sin embargo, Canvas.loadImage . Debido a que está cargando una parte implementada en C, puede tener un comportamiento diferente al de Node y no tiene contexto para la ubicación actual del archivo js.
Le recomiendo que resuelva la ruta en función de __dirname explícitamente.