如何在使用 imagemin 通过电子应用程序压缩图像时修复以下文件错误?

Posted

技术标签:

【中文标题】如何在使用 imagemin 通过电子应用程序压缩图像时修复以下文件错误?【英文标题】:How to fix below file error while compress images by electron app using imagemin? 【发布时间】:2019-11-18 06:29:00 【问题描述】:

我使用 electron 和 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));

打包应用程序时有什么遗漏吗?

【问题讨论】:

它是公共回购吗?有链接吗? 这里github.com/tarami01/compressor01.git 我也遇到了同样的问题,你解决过这个问题吗?会喜欢一个指针... 【参考方案1】:

我遇到了同样的问题,我通过像这样将 false 传递给 asar(我使用电子生成器)来解决它

"build": 
   "asar": false
 ,

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

【讨论】:

以上是关于如何在使用 imagemin 通过电子应用程序压缩图像时修复以下文件错误?的主要内容,如果未能解决你的问题,请参考以下文章

图片压缩工具之grunt-contrib-imagemin

Grunt压缩图片

前端自动化工具 grunt 插件 imagemin 的简单使用

这样使用Node.js压缩PNG图片,效果高达75%

续Gulp使用入门三步压缩图片

CentOS 上的 Node.js 镜像