Objectif: Créez /src/assets/(theme)/*.scss en passant le paramètre dans la ligne de commande en utilisant flag --theme. Je résolu en utilisant une étape de Gulp-Gulp: passage de plusieurs paramètres de ligne de commande à la même tâche
function sass() {
// return gulp.src('/src/assets/scss/**/*.scss')
return gulp.src(['src/assets/scss/' + (util.env.theme ? util.env.theme : 'app') + '.scss'])
.pipe($.sourcemaps.init())
.pipe($.sass({
includePaths: PATHS.sass
})
.on('error', $.sass.logError))
.pipe($.autoprefixer({
browsers: COMPATIBILITY
}))
// Comment in the pipe below to run UnCSS in production
//.pipe($.if(PRODUCTION, $.uncss(UNCSS_OPTIONS)))
.pipe($.if(PRODUCTION, $.cleanCss({ compatibility: 'ie9' })))
.pipe($.if(!PRODUCTION, $.sourcemaps.write()))
.pipe(gulp.dest(PATHS.dist + '/assets/css'))
.pipe(browser.reload({ stream: true }));
}
restante: gulp build --production --theme folderName1, folderName2, folderName*
Passing plusieurs valeurs de thème --theme folderName1 folderName2 à la même fonction/tâche sass()
.
Cela enverrait folderName à fonctionner SASS()
function sass() {
// return gulp.src('/src/assets/scss/**/*.scss')
return gulp.src([
'src/assets/scss/folderName1/*.scss',
'src/assets/scss/folderName2/*.scss',
'src/assets/scss/folderName3/*.scss'
])
...
...
}
Would créer un argsList comme celui-ci SitePoint article discute travail?
Pour quelques autres idées pour transmettre plusieurs paramètres, voir https://stackoverflow.com/questions/46315191/send-arguments-to- goulotte-tâche/46315740 # 46315740 – Mark