【问题标题】:grunt-contrib-imagemin outputting files to the wrong foldergrunt-contrib-imagemin 将文件输出到错误的文件夹
【发布时间】:2014-04-02 07:51:47
【问题描述】:

这是我的 Gruntfile.js 中引用 iamgemin 的部分:

imagemin: {
  options: {
    optimizationLevel: 3
  },
  build: {
    expand: true,              
    src: ['img/*.png', 'img/*.jpg', 'img/*.jpeg', 'img/*.gif'],   
    dest: 'img/min/' 
  }
}

我在 /img 目录中有文件,并且希望压缩版本在 /img/min 中。

当我运行 grunt 时,压缩文件最终在 /img/min/img 中,这不是我想要的。

有什么想法吗?指定 cwd 似乎什么也没做。


编辑:这是我当前的 Gruntfile

imagemin: {
  options: {
    optimizationLevel: 3,
    flatten: true
  },
  build: {
    expand: true,              
    src: ['src/img/*.{png,jpg,jpeg,gif}'],   
    dest: 'build/img/' 
  }
}

指定 cwd 什么也没做。文件当前被转储在 /build/img/src/img/1.jpg 中。我希望它们在 /build/img/1.jpg 中输出

【问题讨论】:

    标签: javascript gruntjs


    【解决方案1】:

    您可以使用“flatten: true”选项让文件以 img/min 格式结束,无论它们来自何处。

    或者,确实,您应该能够使用 cwd,如下所示:

    imagemin: {
      options: {
        optimizationLevel: 3
      },
      build: {
        files: {
          cwd: 'img',
          expand: true,              
          src: ['*.png', '*.jpg', '*.jpeg', '*.gif'],   
          dest: 'img/min/' 
        }
      }
    }
    

    更新:为了记录,您可以使用更简洁的符号:['*.{png,jpg,jpeg,gif}'] 作为您的源代码。

    详情请见http://gruntjs.com/configuring-tasks#building-the-files-object-dynamically

    更新 2:正如文档中所指出的,flatten: true 是文件部分的一部分。例如:

    imagemin: {
      options: {
        optimizationLevel: 3
      },
      build: {
        files: {
          expand: true,              
          flatten: true,
          src: ['img/*.png', 'img/*.jpg', 'img/*.jpeg', 'img/*.gif'],   
          dest: 'img/min/' 
        }
      }
    }
    

    【讨论】:

    • 不幸的是,这没有帮助。编辑了我原来的帖子。
    • 并编辑了我的答案 - flatten 是“文件”部分的一部分,而不是全局“选项”。
    【解决方案2】:

    你应该使用cwd,例如:

    imagemin: {
        dynamic: {
            files: [{
                expand: true,
                cwd: 'src/img',
                src: ['**/*.{png,jpg,gif,ico}'],
                dest: 'www/img'
            }],
        },
    },
    

    此代码从 src/img/* 文件夹中获取图像并将它们编译到 www/src/* 中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      相关资源
      最近更新 更多