您能帮我解决这个问题吗?
我需要根据修改的文件运行特定任务,例如:
修改:_header.scss
运行: sass:header任务
修改:_footer.scss
运行: sass:页脚任务
修改:_banners.scss
运行: sass:横幅任务
我一直在尝试在保存时获取文件名,以将其用作参数,但是我不知道该怎么做。
我的项目允许更多的人同时工作,但是定义项目的哪个组件将导出到CSS的工作是手动的,因此我试图使该过程自动编译每个模块的最终CSS。
我的问题是如何识别修改后的文件的名称,而不是文件的类型。
非常感谢您!
答案 0 :(得分:0)
它应该看起来像这样。更改sass文件时,grunt会生成css文件并仅复制(到dist目录)更改的文件。另外,据您所见,connect and watch任务实现了实时重载。
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
个文件一起运行。有关更多信息,请检查页面grunt-changed