Estoy tratando de comprimir la imagen antes de que $npm ejecute build:test en mi proyecto (Vue3 + vite)
escribí un guión
Necesito sobrescribir la imagen original. Hay varias carpetas debajo de activos/imágenes, por lo que debe resolver el problema de la ruta de dist y usar imagemin Buffer para reescribir
"prebuild:test": "node imagemin.mjs", "build:test": "vue-tsc --noEmit && vite build --mode test",Cuando ejecuto Npm ejecuta build:test
lo encontre no comprimido
Aquí está mi código y mi registro de errores.
async function processFile(filePath) { // filePath = 'src/**/*.{jpg,png,svg,gif}' let buffer = await fs.readFile(filePath); let content; try { content = await imagemin.buffer(buffer, { plugins }); const size = content.byteLength, oldSize = buffer.byteLength; if (tinyMap.get(filePath)) { tinyMap.set(filePath, { ...tinyMap.get(filePath), size: size / 1024, oldSize: oldSize / 1024, ratio: size / oldSize - 1 }); } else { tinyMap.set(filePath, { size: size / 1024, oldSize: oldSize / 1024, ratio: size / oldSize - 1 }); } return content; } catch (error) { console.log(error) console.error('imagemin error:' + filePath); } }Mensaje de error
Error: spawn /Users/XXXXX/node_modules/optipng-bin/vendor/optipng ENOENT at Process.ChildProcess._handle.onexit (internal/child_process.js:269:19) at onErrorNT (internal/child_process.js:467:16) at processTicksAndRejections (internal/process/task_queues.js:82:21) { errno: -2, code: 'ENOENT', syscall: 'spawn /Users/XXXXX/node_modules/optipng-bin/vendor/optipng', path: '/Users/XXXX/node_modules/optipng-bin/vendor/optipng', spawnargs: [ '-strip', 'all', '-clobber', '-o', 7, '-out', '/private/var/folders/kf/nr04_xcd22q5v98q2mfftdmc0000gn/T/b8a43d55-094f-4cab-971d-8d2372562498', '-fix', '-i', '0', '/private/var/folders/kf/nr04_xcd22q5v98q2mfftdmc0000gn/T/fb9379a3-32f2-4499-b460-2c5bf6a95763' ], killed: false, stdout: '', stderr: '', failed: true, signal: null, cmd: '/Users/tuzhixiang/XXXXX/node_modules/optipng-bin/vendor/optipng -strip all -clobber -o 7 -out /private/var/folders/kf/nr04_xcd22q5v98q2mfftdmc0000gn/T/b8a43d55-094f-4cab-971d-8d2372562498 -fix -i 0 /private/var/folders/kf/nr04_xcd22q5v98q2mfftdmc0000gn/T/fb9379a3-32f2-4499-b460-2c5bf6a95763', timedOut: false } imagemin error:src/view/radar/img/radar-bg.png