【发布时间】:2014-10-28 22:16:32
【问题描述】:
我的站点文件结构是这样的:
app
less
themes
default
modern
etc
public
themes
default
css
modern
css
etc
所以/app/less/themes/{{ themeName }}/*.less 将编译成/public/themes/{{ themeName }}/css/*.css。
我已经动态设置了 Grunt Less 任务并且工作正常。
示例:grunt less:compileTheme:modern
less: {
compileTheme: {
options: {
compress: false,
yuicompress: false,
optimization: 2,
sourceMap: true,
sourceMapFilename: "public/themes/<%= grunt.task.current.args[0] %>/css/styles.css.map",
sourceMapURL: "/themes/<%= grunt.task.current.args[0] %>/css/styles.css.map"
},
files: {
"public/themes/<%= grunt.task.current.args[0] %>/css/styles.css": "app/less/themes/<%= grunt.task.current.args[0] %>/styles.less"
}
}
}
但我不确定如何让 Grunt Watch 任务正常工作。理想情况下,它会看到主题文件夹名称并以grunt less:compileTheme:{{ themeName }} 运行 grunt 任务:
watch: {
themeCss: {
files: "app/less/themes/{{ themeName }}/**/*.less",
tasks: ["less:compileTheme:{{ themeName }}"],
options: {
spawn: false
}
}
}
这可能吗?和/或我应该这样做有更好的方法吗?
【问题讨论】:
标签: javascript css gruntjs grunt-contrib-watch grunt-contrib-less