|
1 | | -/*eslint strict: ["error", "global"]*/ |
2 | | -'use strict'; |
| 1 | +import gulp from 'gulp'; |
| 2 | +import sass from 'gulp-sass'; |
| 3 | +import sourcemaps from 'gulp-sourcemaps'; |
| 4 | +import babel from 'gulp-babel'; |
| 5 | +import rename from 'gulp-rename'; |
3 | 6 |
|
4 | | -//======================================================= |
5 | | -// Include gulp |
6 | | -//======================================================= |
7 | | -var gulp = require('gulp'); |
8 | | - |
9 | | -//======================================================= |
10 | | -// Include Our Plugins |
11 | | -//======================================================= |
12 | | -var sass = require('gulp-sass/legacy')(require('node-sass')); |
13 | | -var sourcemaps = require('gulp-sourcemaps'); |
14 | | -var sync = require('browser-sync'); |
15 | | -var babel = require('gulp-babel'); |
16 | | -var rename = require('gulp-rename'); |
17 | | - |
18 | | -// Small error handler helper function. |
19 | | -function handleError(err) { |
| 7 | +async function handleError(err) { |
20 | 8 | console.log(err.toString()); |
21 | 9 | this.emit('end'); |
22 | 10 | } |
23 | 11 |
|
24 | | -// Export our tasks. |
25 | | -module.exports = { |
26 | | - |
27 | | - // Compile Sass. |
28 | | - sass: async function() { |
29 | | - const { default: prefix } = await import('gulp-autoprefixer'); // Dynamically import autoprefixer |
30 | | - |
31 | | - return gulp.src('./src/{global,layout,components}/**/*.scss') |
32 | | - .pipe( |
33 | | - sass({ Style: 'nested' }) |
34 | | - .on('error', handleError) |
35 | | - ) |
36 | | - .pipe(prefix({ |
37 | | - cascade: false |
38 | | - })) |
39 | | - .pipe(rename(function (path) { |
40 | | - path.dirname = ''; |
41 | | - return path; |
42 | | - })) |
43 | | - .pipe(gulp.dest('./dist/css')) |
44 | | - .pipe(sync.stream({match: '**/*.css'})); |
45 | | - }, |
| 12 | +export const sassTask = function() { |
| 13 | + return gulp.src('./src/{global,layout,components}/**/*.scss') |
| 14 | + .pipe( |
| 15 | + sass({ style: 'nested' }) |
| 16 | + .on('error', handleError) |
| 17 | + ) |
| 18 | + .pipe(rename(function (path) { |
| 19 | + path.dirname = ''; |
| 20 | + return path; |
| 21 | + })) |
| 22 | + .pipe(gulp.dest('./dist/css')) |
| 23 | +}; |
46 | 24 |
|
47 | | - // Compile JavaScript. |
48 | | - js: function() { |
49 | | - return gulp.src([ |
50 | | - './src/{global,layout,components}/**/*.es6.js' |
51 | | - ], { base: './' }) |
52 | | - .pipe(sourcemaps.init()) |
53 | | - .pipe( |
54 | | - babel() |
55 | | - .on('error', handleError) |
56 | | - ) |
57 | | - .pipe(rename(function (path) { |
58 | | - // Currently not using ES6 modules so for now |
59 | | - // es6 files are compiled into individual JS files. |
60 | | - // Eventually this can use ES6 Modules and compile |
61 | | - // all files within a component directory into a single |
62 | | - // foo.bundle.js file. In that case the bundle name should |
63 | | - // reflect the components directory name. |
64 | | - path.dirname = ''; |
65 | | - path.basename = path.basename.replace(/\.es6/, ''); |
66 | | - return path; |
67 | | - })) |
68 | | - .pipe(sourcemaps.write('./')) |
69 | | - .pipe(gulp.dest('./dist/js')); |
70 | | - } |
| 25 | +export const jsTask = function() { |
| 26 | + return gulp.src('./src/{global,layout,components}/**/*.es6.js') |
| 27 | + .pipe(sourcemaps.init()) |
| 28 | + .pipe( |
| 29 | + babel() |
| 30 | + .on('error', handleError) |
| 31 | + ) |
| 32 | + .pipe(rename(function (path) { |
| 33 | + path.dirname = ''; |
| 34 | + path.basename = path.basename.replace(/\.es6/, ''); |
| 35 | + return path; |
| 36 | + })) |
| 37 | + .pipe(sourcemaps.write('./')) |
| 38 | + .pipe(gulp.dest('./dist/js')) |
71 | 39 | }; |
0 commit comments