title: Everytime I run gulp anything, I get a assertion error. - Task function must be specified
body: <p>I'm trying to run the command below but unfortunately I run into errors. </p>
  
  <pre><code>$ gulp build
  </code></pre>
  
  <p>In my terminal and I get this assertion error. I've uninstalled <strong>node</strong> and <strong>NPM</strong> and reinstalled again using brew - <a href="https://stackoverflow.com/questions/11177954/how-do-i-completely-uninstall-node-js-and-reinstall-from-beginning-mac-os-x">How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)</a> with these steps. My node version is v10.5.0 and npm version is <code>6.1.0</code>. </p>
  
  <p>My system is <em>MacOS High Sierra</em> <code>10.13.2</code> </p>
  
  <pre><code>assert.js:269
      throw err;
      ^
  
  AssertionError [ERR_ASSERTION]: Task function must be specified
      at Gulp.set [as _setTask] (bulkit/startup-kit/node_modules/undertaker/lib/set-task.js:10:3)
      at Gulp.task (startup-kit/node_modules/undertaker/lib/task.js:13:8)
      at Object.&lt;anonymous&gt; 
      at Module._compile (internal/modules/cjs/loader.js:702:30)
      at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
      at Module.load (internal/modules/cjs/loader.js:612:32)
      at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
      at Function.Module._load (internal/modules/cjs/loader.js:543:3)
      at Module.require (internal/modules/cjs/loader.js:650:17)
      at require (internal/modules/cjs/helpers.js:20:18)
  </code></pre>
  
  <h2>package.json</h2>
  
  <pre><code>{
      "name": "bulkit-startup",
      "version": "0.0.1",
      "description": "Bulkit Startup Kit",
      "main": "Gruntfile.js",
      "devDependencies": {
          "autoprefixer": "^6.3.6",
          "browser-sync": "^2.24.5",
          "gulp": "^4.0.0",
          "gulp-clean": "^0.3.2",
          "gulp-concat": "^2.6.0",
          "gulp-postcss": "^6.1.0",
          "gulp-sass": "^2.2.0",
          "gulp-sourcemaps": "^1.6.0",
          "jquery": "^3.3.1",
          "mq4-hover-shim": "^0.3.0",
          "panini": "^1.3.0",
          "rimraf": "^2.5.2"
      },
      "engines": {
          "node": "&gt;=0.10.1"
      },
      "scripts": {
          "start": "gulp",
          "build": "gulp build"
      },
      "repository": {
          "type": "git",
          "url": "https://github.com/cssninjaStudio/bulkit.git"
      },
      "bugs": {
          "url": "https://github.com/cssninjaStudio/bulkit/issues",
          "email": "support@cssninja.io"
      },
      "author": "Css Ninja &lt;hello@cssninja.io&gt; (https://cssninja.io/themes/bulkit)",
      "license": "Commercial",
      "private": true,
      "dependencies": {
          "bulma": "^0.7.0",
          "del": "^3.0.0",
          "jquery-waypoints": "^2.0.5",
          "jquery.counterup": "^2.1.0",
          "scrollreveal": "^3.4.0",
          "slick-carousel": "^1.8.1",
          "wallop": "^2.4.1"
      }
  }
  </code></pre>
  
  <h2>gulpfile.js</h2>
  
  <pre><code>var gulp = require('gulp');
  var clean = require('gulp-clean');
  var sass = require('gulp-sass');
  var sourcemaps = require('gulp-sourcemaps');
  var postcss = require('gulp-postcss');
  var autoprefixer = require('autoprefixer');
  var mq4HoverShim = require('mq4-hover-shim');
  var rimraf = require('rimraf').sync;
  var browser = require('browser-sync');
  var panini = require('panini');
  var concat = require('gulp-concat');
  var port = process.env.SERVER_PORT || 8080;
  var nodepath =  'node_modules/';
  var assetspath =  'assets/';
  
  // Starts a BrowerSync instance
  gulp.task('server', ['build'], function(){
      browser.init({server: './_site', port: port});
  });
  
  // Watch files for changes
  gulp.task('watch', function() {
      gulp.watch('scss/**/*', ['compile-scss', browser.reload]);
      gulp.watch('sass/**/*', ['compile-sass', browser.reload]);
      gulp.watch('js/**/*', ['copy-js', browser.reload]);
      gulp.watch('images/**/*', ['copy-images', browser.reload]);
      gulp.watch('html/pages/**/*', ['compile-html']);
      gulp.watch(['html/{layouts,includes,helpers,data}/**/*'], ['compile-html:reset','compile-html']);
      gulp.watch(['./src/{layouts,partials,helpers,data}/**/*'], [panini.refresh]);
  });
  
  // Erases the dist folder
  gulp.task('reset', function() {
      rimraf('bulma/*');
      rimraf('scss/*');
      rimraf('assets/css/*');
      rimraf('assets/fonts/*');
      rimraf('images/*');
  });
  
  // Erases the dist folder
  gulp.task('clean', function() {
      rimraf('_site');
  });
  
  // Copy Bulma filed into Bulma development folder
  gulp.task('setupBulma', function() {
      //Get Bulma from node modules
      gulp.src([nodepath + 'bulma/*.sass']).pipe(gulp.dest('bulma/'));
      gulp.src([nodepath + 'bulma/**/*.sass']).pipe(gulp.dest('bulma/'));
  });
  
  // Copy static assets
  gulp.task('copy', function() {
      //Copy other external font and data assets
      gulp.src(['assets/fonts/**/*']).pipe(gulp.dest('_site/assets/fonts/'));
      gulp.src([nodepath + 'slick-carousel/slick/fonts/**/*']).pipe(gulp.dest('_site/assets/css/fonts/'));
      gulp.src([nodepath + 'slick-carousel/slick/ajax-loader.gif']).pipe(gulp.dest('_site/assets/css/'));
  });
  
  //Theme Sass variables
  var sassOptions = {
      errLogToConsole: true,
      outputStyle: 'compressed',
      includePaths: [nodepath + 'bulma/sass']
  };
  
  //Theme Scss variables
  var scssOptions = {
      errLogToConsole: true,
      outputStyle: 'compressed',
      includePaths: ['./scss/partials']
  };
  
  // Compile Bulma Sass
  gulp.task('compile-sass', function () {
      var processors = [
          mq4HoverShim.postprocessorFor({ hoverSelectorPrefix: '.is-true-hover ' }),
          autoprefixer({
              browsers: [
                  "Chrome &gt;= 45",
                  "Firefox ESR",
                  "Edge &gt;= 12",
                  "Explorer &gt;= 10",
                  "iOS &gt;= 9",
                  "Safari &gt;= 9",
                  "Android &gt;= 4.4",
                  "Opera &gt;= 30"
              ]
          })//,
          //cssnano(),
      ];
      //Watch me get Sassy
      return gulp.src('./bulma/bulma.sass')
          .pipe(sourcemaps.init())
          .pipe(sass(sassOptions).on('error', sass.logError))
          .pipe(postcss(processors))
          .pipe(sourcemaps.write())
          .pipe(gulp.dest('./_site/assets/css/'));
  });
  
  // Compile Theme Scss
  gulp.task('compile-scss', function () {
      var processors = [
          mq4HoverShim.postprocessorFor({ hoverSelectorPrefix: '.is-true-hover ' }),
          autoprefixer({
              browsers: [
                  "Chrome &gt;= 45",
                  "Firefox ESR",
                  "Edge &gt;= 12",
                  "Explorer &gt;= 10",
                  "iOS &gt;= 9",
                  "Safari &gt;= 9",
                  "Android &gt;= 4.4",
                  "Opera &gt;= 30"
              ]
          })//,
          //cssnano(),
      ];
      //Watch me get Sassy
      return gulp.src('./scss/core.scss')
          .pipe(sourcemaps.init())
          .pipe(sass(sassOptions).on('error', sass.logError))
          .pipe(postcss(processors))
          .pipe(sourcemaps.write())
          .pipe(gulp.dest('./_site/assets/css/'));
  });
  
  // Compile Html
  gulp.task('compile-html', function() {
      gulp.src('html/pages/**/*.html')
          .pipe(panini({
          root: 'html/pages/',
          layouts: 'html/layouts/',
          partials: 'html/includes/',
          helpers: 'html/helpers/',
          data: 'html/data/'
      }))
          .pipe(gulp.dest('_site'))
          .on('finish', browser.reload);
  });
  
  gulp.task('compile-html:reset', function(done) {
      panini.refresh();
      done();
  });
  
  // Compile css from node modules
  gulp.task('compile-css', function() {
      return gulp.src([ 
          nodepath + 'slick-carousel/slick/slick.css',
          nodepath + 'slick-carousel/slick/slick-theme.css',
          nodepath + 'wallop/css/wallop.css',
          //Additional static css assets
          assetspath + 'css/icons.min.css',
      ])
          .pipe(concat('app.css'))
          .pipe(gulp.dest('./_site/assets/css/'));
  });
  
  // Compile js from node modules
  gulp.task('compile-js', function() {
      return gulp.src([ 
          nodepath + 'jquery/dist/jquery.min.js', 
          nodepath + 'slick-carousel/slick/slick.min.js', 
          nodepath + 'scrollreveal/dist/scrollreveal.min.js',
          nodepath + 'waypoints/lib/jquery.waypoints.min.js',
          nodepath + 'waypoints/lib/shortcuts/sticky.min.js',
          nodepath + 'jquery.counterup/jquery.counterup.min.js',
          nodepath + 'wallop/js/Wallop.min.js',
          //Additional static js assets
          assetspath + 'js/ggpopover/ggpopover.min.js',
          assetspath + 'js/ggpopover/ggtooltip.js',
          assetspath + 'js/embed/embed.js',
          assetspath + 'js/gmap/gmap.min.js',
      ])
          .pipe(concat('app.js'))
          .pipe(gulp.dest('./_site/assets/js/'));
  });
  
  //Copy Theme js to production site
  gulp.task('copy-js', function() {
      gulp.src('js/**/*.js')
          .pipe(gulp.dest('./_site/assets/js/'));
  });
  
  //Copy images to production site
  gulp.task('copy-images', function() {
      gulp.src('images/**/*')
          .pipe(gulp.dest('./_site/assets/images/'));
  });
  
  gulp.task('init', ['setupBulma']);
  gulp.task('build', ['clean','copy', 'compile-js', 'compile-css', 'copy-js', 'compile-sass', 'compile-scss', 'compile-html', 'copy-images']);
  gulp.task('default', ['server', 'watch']);
  </code></pre>