Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

224
Views
window.CCapture no es un constructor en Node.js

Estoy tratando de cargar CCapture en Node.js en lugar de tener que ejecutar un navegador sin interfaz gráfica de usuario para grabar el flujo de lienzo. Sigo recibiendo window.CCapture no es un error del constructor.

Enlace de la biblioteca de CCapture: https://github.com/spite/ccapture.js

Aquí está mi código

 const jsdom = require("jsdom"); const { JSDOM } = jsdom; const { window } = new JSDOM(`<!DOCTYPE html><body> <script src='./node_modules/ccapture.js/build/CCapture.all.min.js'></script> <canvas id="canvas" width="200" height="100"></canvas> </body>`, // We need these options to allow JSDOM to require CCapture from node_modules { runScripts: "dangerously", resources: "usable" }); const document = window.document; window.onload = () => { console.log("Onload >>>>>>"); const canvas = document.getElementById("canvas"); //const canvas = createCanvas(200, 200) const ctx = canvas.getContext("2d"); var colors = ["red", "blue", "yellow", "orange", "black", "white", "green"]; function draw (){ ctx.fillStyle = colors[Math.floor(Math.random() * colors.length)]; ctx.fillRect(0, 0, canvas.width, canvas.height); } draw(); var capturer = new window.CCapture( { format: 'ffmpegserver', framerate: 60, verbose: true, name: "foobar", // videos will be named foobar-#.mp4, untitled if not set. extension: ".mp4", // extension for file. default = ".mp4" codec: "mpeg4", // this is an valid ffmpeg codec "mpeg4", "libx264", "flv1", etc... // if not set ffmpeg guesses based on extension. } ); console.log("Capture>>>>>", capturer); };
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

window.CCapture devuelve undefined, lo que significa que el script no se cargó correctamente.

Eso es porque no puede importar scripts locales de esa manera en JSDOM. Una forma de resolverlo es simplemente cargar el script a través de un CDN dentro del argumento del constructor JSDOM en lugar de vincularlo a un archivo local.

about 4 years ago · Juan Pablo Isaza Report

0

jsdom no puede resolver las rutas locales ... use cdn o cargue el script en línea leyendo el contenido del archivo y luego agregándolo al dom a través de document.createElement

Muestra:

 const jsdom = require("jsdom"); const { JSDOM } = jsdom; const fs = require("fs"); const script = fs.readFileSync("./node_modules/ccapture.js/build/CCapture.all.min.js", { encoding: "utf8", flag: "r", }); const { window } = new JSDOM( `<!DOCTYPE html> <body> </body>`, { runScripts: "dangerously", resources: "usable", } ); var document = window.document; var scriptEl = document.createElement("script"); scriptEl.textContent = script; document.head.appendChild(scriptEl); window.onload = () => { console.log(window.CCapture); };
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!