| 48 | const sassOptionWithCache = () => ({since: gulp.lastRun(sassWithCacheTaskName)}); |
| 49 | |
| 50 | const sassHandle = (options) => { |
| 51 | options = options || (() => ({})); |
| 52 | return () => |
| 53 | gulp.src('../project/**/*.scss', options()) |
| 54 | .pipe(mix.plugins.sassInheritance({base: '../project/'})) |
| 55 | .pipe(mix.plugins.if(Boolean(argv.debug), mix.plugins.debug({title: 'Sass Debug:'}))) |
| 56 | .pipe(mix.plugins.if(mix.config.needsSourceMaps, mix.plugins.sourcemaps.init())) |
| 57 | .pipe(mix.plugins.dartSass({ |
| 58 | errLogToConsole: true, |
| 59 | indentWidth: 4, |
| 60 | precision: 6, |
| 61 | outputStyle: 'expanded' |
| 62 | }).on('error', mix.plugins.dartSass.logError)) |
| 63 | .pipe(mix.plugins.postcss([lazysprite(lazySpriteConfig), svgSprite(svgSpriteConfig), autoprefixer({ |
| 64 | browsers: ['defaults', 'last 5 versions', '> 5% in CN', 'not ie <= 8', 'iOS > 8'] |
| 65 | })])) |
| 66 | .pipe(mix.plugins.if(mix.config.needsSourceMaps, mix.plugins.sourcemaps.write('./maps'))) // Source Maps 的 Base 输出目录为 style 输出的目录 |
| 67 | .pipe(gulp.dest(styleResultPath)) |
| 68 | }; |
| 69 | |
| 70 | gulp.task(sassWithCacheTaskName, sassHandle(sassOptionWithCache)); |
| 71 | |