【发布时间】:2018-03-06 21:48:00
【问题描述】:
目标: 通过使用标志 --theme 在命令行中传递参数来构建 /src/assets/(theme)/*.scss。我使用 gulp-utils 解决了第一步
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 }));
}
剩余:
gulp build --production --theme folderName1, folderName2, folderName*
将多个主题值 --theme folderName1 folderName2 传递给同一个 sass() 函数/任务。
这会将文件夹名称发送到函数 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'
])
...
...
}
会创建一个像 SitePoint article 这样讨论工作的 argsList 吗?
【问题讨论】:
标签: command-line gulp parameter-passing