在使用imagemin电子应用程序压缩图像时,如何解决文件错误?

时间:2019-07-08 17:39:26

标签: node.js electron node-modules imagemin

我已经创建了一个使用电子和imagemin的基本图像压缩应用程序,在使用npm start命令运行时,该应用程序运行良好。

之后,我使用电子打包程序打包了该应用程序并运行exe文件,并尝试再次压缩图像。

这一次我遇到了错误

Error: Error in file: path_to_image.jpg

write EPIPE
    at afterWriteDispatched (internal/stream_base_commons.js:145)
    at writeGeneric (internal/stream_base_commons.js:136)
    at Socket._writeGeneric (net.js:703)
    at Socket._write (net.js:715)
    at doWrite (_stream_writable.js:415)
    at writeOrBuffer (_stream_writable.js:399)
    at Socket.Writable.write (_stream_writable.js:299)
    at Socket.Writable.end (_stream_writable.js:584)
    at Socket.end (net.js:531)
    at handleInput (C:\Users\xyz\Desktop\slice\release-builds\slice-win32-ia32\resources\app.asar\node_modules\execa\index.js:87)`

这是下面的代码

const path = require('path')
const imagemin = require('imagemin');
const imageminMozjpeg = require('imagemin-mozjpeg');

const files = await imagemin(["path_to_image.jpg"], path.dirname(r) + '/optimized', {
        plugins: [
            imageminMozjpeg({
                quality: document.getElementById('jq').value
            })
        ]
    }).then(file => {
        console.log(file);
    })
    .catch(Error => console.log(Error));

打包应用程序时我是否缺少任何东西?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我通过将false传递给asar(我使用电子制造器)来解决此问题

"build": {
   "asar": false
 },

通过将--no-asar传递给打包脚本,您可以使用电子打包器实现相同的目的