You need to enable JavaScript to run this app. Gulp使用gulp-imagemin插件报错EROFS: 只读文件系统无法创建/dist目录
优惠活动
大模型
产品
解决方案
定价
更多

Gulp使用gulp-imagemin插件报错EROFS: 只读文件系统无法创建/dist目录

问题原因

你遇到的报错是路径书写错误导致的:

  • imageOptimze、webpImage两个函数中,dest()传入的是绝对路径/dist/images,路径开头的斜杠代表从操作系统根目录开始寻址,而MacOS默认对根目录开启只读权限,普通用户无法直接在根目录创建dist文件夹,因此抛出EROFS: read-only file system错误。
  • 其他任务可以正常执行的原因是你使用了相对路径dist/css、dist/js,是从当前项目根目录开始寻址,拥有写入权限。

修复方案

  1. 移除两个图片处理函数中dest路径开头的斜杠,改为相对路径
  2. 修正glob匹配规则中逗号后的多余空格,否则会无法匹配正常的jpg、png后缀文件

修改后的代码如下:

function imageOptimze() {
  // 去掉{jpg, png}中的空格,修正匹配规则
  return src('src/img/*.{jpg,png}')
    .pipe(
      imagemin([
        imagemin.mozjpeg({ quality: 80, progressive: true }),
        imagemin.optipng({ optimizationLevel: 2 }),
      ])
    )
    // 去掉路径开头的斜杠,使用相对路径
    .pipe(dest('dist/images'));
}

function webpImage() {
  // 去掉{jpg, png}中的空格,修正匹配规则
  return src('dist/images/*.{jpg,png}')
    .pipe(imagewebp())
    // 去掉路径开头的斜杠,使用相对路径
    .pipe(dest('dist/images'));
}

修改完成后重新运行gulp命令即可正常执行图片压缩任务。


内容的提问来源于stack exchange,提问作者PredikDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 04:06:01