Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

498
Vistas
Problema de configuración del plugin de copy-webpack

Dentro de una aplicación electron.js, intento llamar y ejecutar un script de python desde node.js según estas indicaciones: https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback

 import { execFile } from 'child_process'; let pythonPath = '/home/marco/anaconda3/bin/python3'; execFile('./scripts/factorial.py', [parseInt(msg)], { cwd: './scripts', env: '/home/marco/anaconda3/bin/python3' }, (error, stdout, stderr) => { if (error) { throw error; } console.log(stdout); } );

Y me sale este error:

ingrese la descripción de la imagen aquí

Al comentar la parte de options :

 execFile('./scripts/factorial.py', [parseInt(msg)], //{ cwd: './scripts', //env: '/home/marco/anaconda3/bin/python3' //}, (error, stdout, stderr) => { if (error) { throw error; } console.log(stdout); } );

Me sale el mismo error.

Siguiendo las indicaciones que se encuentran aquí: https://www.tutorialspoint.com/run-python-script-from-node-js-using-child-process-spawn-method modifiqué el código de la siguiente manera:

 const { spawn } = require('child_process'); let nb = parseInt(msg); function runScript() { return spawn ('python3', [ "-u", path.join(__dirname, './scripts/factorial.py'), nb, ]); } const subprocess = runScript(); subprocess.stdout.on('data', (data) => { console.log(`data:${data}`); }); subprocess.stderr.on('data', (data) => { console.log(`error:${data}`); }); subprocess.stderr.on('close', () => { console.log("Closed"); });

me sale este error:

 error:python3: can't open file '/home/marco/webMatters/electronMatters /PythonConnection/.webpack/main/scripts/factorial.py': [Errno 2] No such file or directory Closed

Siguiendo las indicaciones que se encuentran aquí: https://webpack.js.org/plugins/copy-webpack-plugin/#root modifiqué /tools/webpack/webpack.plugins.js como:

 const CopyPlugin = require("copy-webpack-plugin"); module.exports = [ new ForkTsCheckerWebpackPlugin(), new webpack.ExternalsPlugin('commonjs', [ 'electron' ]), new CopyPlugin({ patterns: [ { from: "src/scripts/", to: ".webpack/main/script/" }, ], }), ];

A mí me parece que respeta el estándar, pero me sale este largo mensaje de error:

 An unhandled error has occurred inside Forge: compilation.getCache is not a function TypeError: compilation.getCache is not a function at /home/marco/webMatters/electronMatters/PythonConnection /node_modules/copy-webpack-plugin/dist/index.js:459:33 at SyncHook.eval (eval at create (/home/marco/webMatters /electronMatters/PythonConnection/node_modules/tapable /lib/HookCodeFactory.js:19:10), <anonymous>:7:1) at SyncHook.lazyCompileHook (/home/marco/webMatters/electronMatters /PythonConnection/node_modules/tapable/lib/Hook.js:154:20) at Compiler.newCompilation (/home/marco/webMatters/electronMatters /PythonConnection/node_modules/webpack/lib/Compiler.js:630:30) at /home/marco/webMatters/electronMatters/PythonConnection /node_modules/webpack/lib/Compiler.js:667:29 at AsyncSeriesHook.eval [as callAsync] (eval at create (/home/marco /webMatters/electronMatters/PythonConnection/node_modules/tapable /lib/HookCodeFactory.js:33:10), <anonymous>:6:1) at AsyncSeriesHook.lazyCompileHook (/home/marco/webMatters /electronMatters/PythonConnection/node_modules/tapable /lib/Hook.js:154:20) at Compiler.compile (/home/marco/webMatters/electronMatters /PythonConnection/node_modules/webpack/lib/Compiler.js:662:28) at /home/marco/webMatters/electronMatters/PythonConnection /node_modules/webpack/lib/Watching.js:77:18 at AsyncSeriesHook.eval [as callAsync] (eval at create (/home/marco /webMatters/electronMatters/PythonConnection/node_modules/tapable /lib/HookCodeFactory.js:33:10), <anonymous>:33:1) at AsyncSeriesHook.lazyCompileHook (/home/marco/webMatters /electronMatters/PythonConnection/node_modules/tapable /lib/Hook.js:154:20) at Watching._go (/home/marco/webMatters/electronMatters /PythonConnection/node_modules/webpack/lib/Watching.js:41:32) at /home/marco/webMatters/electronMatters/PythonConnection /node_modules/webpack/lib/Watching.js:33:9 at Compiler.readRecords (/home/marco/webMatters/electronMatters /PythonConnection/node_modules/webpack/lib/Compiler.js:529:11) at new Watching (/home/marco/webMatters/electronMatters /PythonConnection/node_modules/webpack/lib/Watching.js:30:17) at Compiler.watch (/home/marco/webMatters/electronMatters /PythonConnection/node_modules/webpack/lib/Compiler.js:244:10) error Command failed with exit code 1.

Parece un paso más allá, pero aún hay algo que arreglar.

versión del nodo: v14.5.0 OS: Ubuntu 18.04 Desktop

¿Como resolver el problema? Esperando su amable ayuda

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Parece que su problema es que está usando webpack <5 y copy-webpack-plugin 7 que no son compatibles.

Solo haz :

 npm install copy-webpack-plugin@6 --save-dev

Arreglarlo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda