【问题标题】:How to run two independent grunt-sass tasks如何运行两个独立的 grunt-sass 任务
【发布时间】:2018-03-30 16:50:34
【问题描述】:

我有两个文件,我想用 sass 独立观看和编译:

  • 任务sass:A 应该仅在A 中的文件发生更改时运行
  • 仅当B 中的文件发生更改时才执行sass:B 任务。

这两项任务都很昂贵。如果没有必要,我不想让他们执行。

我希望是这样的:

sass: {
    A: {
        dist: {
            files: {
                'A/main.css': 'A/main.scss'
            }
        }
    },
    B: {
        dist: {
            files: {
                'B/main.css': 'B/main.scss'
            }
        }
    }
},
watch: {
    sass_A: {
        files: 'A/**/*.scss',
        tasks: ['sass:A']
    },
    sass_B: {
        files: 'B/**/*.scss',
        tasks: ['sass:B']
    }
}

但我一定遗漏了一些东西,因为我的 .css 文件没有按预期更改。

有没有办法让两个独立的grunt-sass 任务运行?

【问题讨论】:

  • 你的 gruntfile.js 和文件夹 A & B 在同一个目录吗?
  • 是的。项目根目录包含:grunt.js, A, B (and others...)

标签: gruntjs


【解决方案1】:

通过以下设置,您应该可以工作了。

您需要更改相对路径以定位A 文件夹中的文件和B 文件夹中的文件。

但请注意,路径是相对于gruntfile.js

sass: {
    admin: {
        src: ['../scss/admin/style.scss'],
        dest: '../css/admin.min.css'
    },
    front: {
        src: ['../scss/front/style.scss'],
        dest: '../css/front.min.css'
    }
},
watch: {
    admin_scss: {
        files: [
            '../scss/admin/**/*.scss'
        ],
        tasks: [
            'sass:admin',
        ]
    },
    front_scss: {
        files: [
            '../scss/front/**/*.scss'
        ],
        tasks: [
            'sass:front'
        ]
    },
},

【讨论】:

  • 谢谢。诀窍似乎是,结构 dist: {files: { ... }} 在子任务中不起作用。您的版本有效!
  • 完美,很高兴您解决了这个问题 :)
猜你喜欢
  • 2014-04-16
  • 2013-02-23
  • 2012-08-24
  • 2020-03-31
  • 2018-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-05
相关资源
最近更新 更多