如何为开发人员和生产人员设置grunt-contrid-sass的不同任务? 我需要不同的css文件-有和没有sourcemaps。
我尝试过:
sass: {
dev: {
options: {
sourcemap: 'inline',
},
},
prod: {
options: {
sourcemap: 'none',
},
},
files: {
expand: true,
cwd: 'static/compass/sass/pages/redesign/',
src: ['**/*.scss'],
dest: 'static/compass/css/pages/redesign/',
ext: '.css'
},
},
但是在这种情况下,sass:dev任务不会编译任何文件。
当我尝试:
sass: {
dev: {
options: {
sourcemap: 'inline',
},
files: {
expand: true,
cwd: 'static/compass/sass/pages/redesign/',
src: ['**/*.scss'],
dest: 'static/compass/css/pages/redesign/',
ext: '.css'
},
},
prod: {
options: {
sourcemap: 'none',
},
files: {
expand: true,
cwd: 'static/compass/sass/pages/redesign/',
src: ['**/*.scss'],
dest: 'static/compass/css/pages/redesign/',
ext: '.css'
},
},
}
我收到一条警告,建议您使用“ --force”。但是即使使用“ --force”,我也不会得到编译文件。
有什么办法吗?
答案 0 :(得分:0)
您的第二个示例接近应有的示例。但是,每个files
属性的值都应该是一个包含对象的数组,如文档中的this example所示。
例如,应为:
files: [{
//...
}]
和不:
files: {
//...
}
将您的saas
任务改为以下内容:
sass: {
dev: {
options: {
sourcemap: 'inline'
},
files: [{ // <-- change this
expand: true,
cwd: 'static/compass/sass/pages/redesign/',
src: ['**/*.scss'],
dest: 'static/compass/css/pages/redesign/',
ext: '.css'
}] // <-- change this
},
prod: {
options: {
sourcemap: 'none'
},
files: [{ // <-- change this
expand: true,
cwd: 'static/compass/sass/pages/redesign/',
src: ['**/*.scss'],
dest: 'static/compass/css/pages/redesign/',
ext: '.css'
}] // <-- change this
}
}
编辑
注意:您还应该考虑更改dest
或dev
目标(或两者)中的prod
路径,因为当前它们是相同的路径,即如果您同时运行sass:prod
和sass:dev
,则一个任务的输出将被另一个任务覆盖。