咕噜咕噜地运行任务取决于修改的文件,这可能吗?



你能帮我解决这个问题吗?

我需要根据修改的文件运行特定的任务,例如:

修改:_header.scss
运行:sass:header任务

修改:_footer.scss
运行:sass:footer任务

修改:_banners.scs
运行:sass:横幅任务

我一直试图在节省时间的时候获得文件名,将其用作参数,但我想不出如何做到这一点。

我的项目允许更多的人同时工作,但定义项目的哪个组件将导出到CSS的工作是手动的,所以我试图使编译每个模块的最终CSS的过程自动化。

我的问题是如何识别修改后的文件的名称,而不是文件的类型。

非常感谢!

它应该是这样的。当sass文件被更改时,grunt只生成css文件并复制(到dist目录(更改后的文件。此外,在您可以看到的范围内,连接并监视任务实现实时重载。

connect: {
options: {
port: ...
livereload: 35729,
hostname: '127.0.0.1'
},
livereload: {
options: {
base: [
'some dist'
]
}
}
},
// check that files are changed
watch: {
livereload: {
options: {
livereload: '<%= connect.options.livereload %>'
},
files: [
'your dist/*.css'
]
},
// when sass file is changed, tasks will run
// newer:copy means that we have to do task copy with changed files only
sass: {
files: ['your dir/*.sass'],
tasks: ['sass', ...some other tasks like cssmin..., 'newer:copy']
}
},
sass: {
dist: {
files: [
...sass to css
]
}
},
copy: {
css: {
....
}
}

您也可以对grunt-changed这样的任务感兴趣。该任务将另一个任务配置为使用已更改的src文件运行。欲了解更多信息,请查看已更改的页面

最新更新