【问题标题】:Grunt imagemin error: Cannot read property 'contents' of undefinedGrunt imagemin 错误:无法读取未定义的属性“内容”
【发布时间】:2016-04-17 18:45:48
【问题描述】:

当我尝试运行 Grunt imagemin 时,它会抛出以下错误:

Running "imagemin:dynamic" (imagemin) task
Fatal error: Cannot read property 'contents' of undefined

这是我的 package.json 文件:

{
  "name": "project1",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-imagemin": "^1.0.0",
    "grunt-contrib-uglify": "^0.11.0",
    "imagemin" : "4.0.0"
  }
}

这是我的 Gruntfile.js

module.exports = function(grunt) {

    grunt.initConfig({

        pkg: grunt.file.readJSON('package.json'),

        uglify: {
          build: {
            src: 'views/js/src/main.js',
            dest: 'views/js/build/main.js'
          }
        },

        imagemin: {
          dynamic: {
            files: [{
              expand: true,
              cwd: 'views/images/src/',
              src: ['**/*.{png,jpg,gif}'],
              dest: 'views/images/build/'
            }]
          }
        }

    });

    // 3. Where we tell Grunt we plan to use this plug-in.
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-imagemin');

    // 4. Where we tell Grunt what to do when we type "grunt" into the terminal.
    grunt.registerTask('default', ['uglify', 'imagemin']);

};

问题是在先前版本的 imagemin 中出现flagged and evidently resolved。但是商定的解决方案是将 grunt-contrib-imagemin 更新到 1.0.0 版本,将 imagemin 更新到 4.0.0,我已经完成了,但它仍然无法正常工作。

【问题讨论】:

标签: javascript gruntjs grunt-contrib-imagemin imagemin


【解决方案1】:

只需将 gurnt-contrib-imagemin 更新到 1.0.0 或最新版本,您可能使用的是旧版本,可能是 0.9.x

【讨论】:

    【解决方案2】:

    对我来说,将grunt-contrib-imagemin 更新到版本^1.0.0 并添加依赖项imagemin 版本^4.0.0vinyl-fs 版本^2.1.1

    【讨论】:

      【解决方案3】:

      GitHub 解决方案 (https://github.com/gruntjs/grunt-contrib-imagemin/issues/344) 不是降级 grunt-contrib-imagemin,而是在您的 package.json 中添加 "vinyl-fs": "2.2.1"

      vinyl-fs 似乎在依赖关系树的任何位置。但是 vinyl-fs 从 2.2.1 到 2.3.0 有一个破坏性版本更改,这将中断构建过程。所以版本应该“强制”到2.2.1。

      【讨论】:

      • 我试过了,没用。最后,我重新安装了我确信可以工作的最后一个版本(0.3.0)。
      • 现在有一个针对vinyl-fs 的错误修复,它解决了问题(github.com/gruntjs/grunt-contrib-imagemin/issues/344)。该错误不应再发生,因此从 package.json 中删除该行应该是安全的。
      • 对我来说,它修复了将 grunt-contrib-imagemin 更新为 1.0.0。它将其 imagemin 依赖项更新为 4.0.0。
      【解决方案4】:

      我通过将 package.json 中的 grunt-contrib-imagemin 更改为 grunt-contrib-imagemin": "0.9.1" 解决了这个问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-30
        • 1970-01-01
        • 1970-01-01
        • 2020-10-15
        • 2021-12-22
        • 2021-12-31
        • 2022-10-05
        相关资源
        最近更新 更多