你能帮我解决这个问题吗?
我需要根据修改的文件运行特定的任务,例如:
修改:_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
文件运行。欲了解更多信息,请查看已更改的页面