grunt-sass 多个 src/dest 在同一结构上
grunt-sass multiple src/dest on same structure
我正在从事一个多网站项目,其中所有网站共享相同的结构:
-sites
-site1
-css
-scss
-site2
-css
-scss
在我的 gruntfile.js 中,我的 sass 任务是这样写的:
sass: {
options: {
sourceMap: true,
outputStyle: 'compressed'
},
pippo: {
files: {
'sites/site1/css/main.css': 'sites/site1/css/sass/main.scss',
'sites/site2/css/main.css': 'sites/site2/css/sass/main.scss',
}
}
}
这样写可以吗?
sass: {
options: {
sourceMap: true,
outputStyle: 'compressed'
},
pippo: {
files: {
'sites/**/css/main.css': 'sites/**/css/sass/main.scss'
}
}
}
我测试了它,当我构建它时它正在添加一个新的 ** 文件夹...有什么建议吗?
几个小时后,我找到了一个可行的解决方案,在我添加的 grunt 文件的最顶部:
module.exports = function(grunt) {
var fs = require('fs');
console.log("Inside the gruntfile");
//create dynamic list of scss file paths
var objDestSource = {
'public/css/main.css': 'public/css/sass/main.scss'
};
fs.readdirSync('sites').forEach(function(folder){
objDestSource['sites/'+folder+'/css/main.css'] = 'sites/'+folder+'/css/sass/main.scss';
});
console.log(objDestSource);
// end scss function
在 grunt sass 任务中我刚刚更改为:
sass: {
options: {
sourceMap: true,
outputStyle: 'compressed'
},
taskName: {
files: objDestSource
}
}
和监视任务:
watch: {
sass: {
files: [
'public/css/sass/**/*.scss',
'sites/**/css/sass/**/*.scss'
],
tasks: ['sass'],
options: {
spawn: false
}
}
}
这样我就可以添加一个新的子网站,而不必每次都编辑 gruntfile!
我正在从事一个多网站项目,其中所有网站共享相同的结构:
-sites
-site1
-css
-scss
-site2
-css
-scss
在我的 gruntfile.js 中,我的 sass 任务是这样写的:
sass: {
options: {
sourceMap: true,
outputStyle: 'compressed'
},
pippo: {
files: {
'sites/site1/css/main.css': 'sites/site1/css/sass/main.scss',
'sites/site2/css/main.css': 'sites/site2/css/sass/main.scss',
}
}
}
这样写可以吗?
sass: {
options: {
sourceMap: true,
outputStyle: 'compressed'
},
pippo: {
files: {
'sites/**/css/main.css': 'sites/**/css/sass/main.scss'
}
}
}
我测试了它,当我构建它时它正在添加一个新的 ** 文件夹...有什么建议吗?
几个小时后,我找到了一个可行的解决方案,在我添加的 grunt 文件的最顶部:
module.exports = function(grunt) {
var fs = require('fs');
console.log("Inside the gruntfile");
//create dynamic list of scss file paths
var objDestSource = {
'public/css/main.css': 'public/css/sass/main.scss'
};
fs.readdirSync('sites').forEach(function(folder){
objDestSource['sites/'+folder+'/css/main.css'] = 'sites/'+folder+'/css/sass/main.scss';
});
console.log(objDestSource);
// end scss function
在 grunt sass 任务中我刚刚更改为:
sass: {
options: {
sourceMap: true,
outputStyle: 'compressed'
},
taskName: {
files: objDestSource
}
}
和监视任务:
watch: {
sass: {
files: [
'public/css/sass/**/*.scss',
'sites/**/css/sass/**/*.scss'
],
tasks: ['sass'],
options: {
spawn: false
}
}
}
这样我就可以添加一个新的子网站,而不必每次都编辑 gruntfile!