4
4
'use strict'
5
5
6
6
const gulp = require ( 'gulp' )
7
+ const path = require ( 'path' )
7
8
const sass = require ( 'gulp-sass' )
8
9
const tools = require ( '../tasktools.js' )
9
10
const autoprefixer = require ( 'gulp-autoprefixer' ) ;
@@ -12,23 +13,30 @@ const autoprefixer = require('gulp-autoprefixer');
12
13
* Build one or more Sass stylesheets
13
14
* @param {Object } conf
14
15
* @property {Array|string } conf.src - glob patterns of Sass files to build
15
- * @property {string } conf.dest - output file name
16
+ * @property {string } conf.dest - output folder or file name
16
17
* @property {string } conf.browsers - Autoprefixer browser compat
18
+ * @property {string } conf.outputStyle - Sass output style
19
+ * @property {Array } conf.includePaths - Folders to look for '@import's in
17
20
* @returns {* }
18
21
*/
19
22
module . exports = function sassBuilder ( conf ) {
20
- let sassOpts = {
21
- outputStyle : conf . outputStyle || 'compressed' ,
22
- includePaths : conf . includePaths || [ ]
23
- }
24
- let prefixOpts = conf . browsers ? { browsers : conf . browsers } : { }
23
+ const prefixOptions = { }
24
+ const sassOptions = { outputStyle : conf . outputStyle || 'compressed' }
25
+ if ( conf . browsers ) prefixOptions . browsers = conf . browsers
26
+ if ( conf . includePaths ) sassOptions . paths = conf . includePaths
27
+
28
+ const dest = path . parse ( conf . dest )
29
+ const doConcat = dest . ext === '.css'
30
+ const file = doConcat ? dest . base : 'all.css'
31
+ const dir = doConcat ? dest . dir : conf . dest
25
32
26
33
return gulp . src ( conf . src )
27
34
. pipe ( tools . errors ( ) )
28
35
. pipe ( tools . sourcemap . init ( ) )
29
- . pipe ( sass ( sassOpts ) )
30
- . pipe ( autoprefixer ( prefixOpts ) )
31
- . pipe ( tools . size ( conf . dest ) )
36
+ . pipe ( sass ( sassOptions ) )
37
+ . pipe ( autoprefixer ( prefixOptions ) )
38
+ . pipe ( tools . if ( doConcat , tools . concat ( file ) ) )
39
+ . pipe ( tools . size ( dir ) )
32
40
. pipe ( tools . sourcemap . write ( '.' ) )
33
- . pipe ( gulp . dest ( conf . dest ) )
41
+ . pipe ( gulp . dest ( dir ) )
34
42
}
0 commit comments