Error code:

$ gulp assert.js:269 throw err; ^ AssertionError [ERR_ASSERTION]: Task function must be specified at Gulp.set [as _setTask] (C:\OSPanel\domains\store.loc\node_modules\undertaker\lib\set-task.js:10:3) at Gulp.task (C:\OSPanel\domains\store.loc\node_modules\undertaker\lib\task.js:13:8) at Object.<anonymous> (C:\OSPanel\domains\store.loc\gulpfile.js:32:6) at Module._compile (internal/modules/cjs/loader.js:689:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10) at Module.load (internal/modules/cjs/loader.js:599:32) at tryModuleLoad (internal/modules/cjs/loader.js:538:12) at Function.Module._load (internal/modules/cjs/loader.js:530:3) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:20:18) 

Contents of package.json file

 { "name": "store-loc", "version": "1.0.0", "description": "OpenCart Gulp Project", "main": "gulpfile.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "asd-python_01", "license": "ISC", "devDependencies": { "browser-sync": "^2.24.5", "gulp": "^4.0.0", "gulp-autoprefixer": "^5.0.0", "gulp-clean-css": "^3.9.4", "gulp-sass": "^4.0.1", "gulp-util": "^3.0.8", "node-bourbon": "^4.2.8", "vinyl-ftp": "^0.6.1" }, } 

Contents of the gulpfile.js file

 // ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Gulp ΠΈ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ var gulp = require('gulp'), gutil = require('gulp-util' ), sass = require('gulp-sass'), browserSync = require('browser-sync'), cleanCSS = require('gulp-clean-css'), autoprefixer = require('gulp-autoprefixer'), bourbon = require('node-bourbon'), ftp = require('vinyl-ftp'); // ОбновлСниС страниц сайта Π½Π° локальном сСрвСрС gulp.task('browser-sync', function() { browserSync({ proxy: "store.loc", notify: false }); }); // ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ stylesheet.css gulp.task('sass', function() { return gulp.src('catalog/view/theme/woman/stylesheet/stylesheet.sass') .pipe(sass({ includePaths: bourbon.includePaths }).on('error', sass.logError)) .pipe(autoprefixer(['last 15 versions'])) .pipe(cleanCSS()) .pipe(gulp.dest('catalog/view/theme/woman/stylesheet/')) .pipe(browserSync.reload({stream: true})) }); // НаблюдСниС Π·Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ gulp.task('watch', ['sass', 'browser-sync'], function() { gulp.watch('catalog/view/theme/woman/stylesheet/stylesheet.sass', ['sass']); gulp.watch('catalog/view/theme/woman/template/**/*.tpl', browserSync.reload); gulp.watch('catalog/view/theme/woman/js/**/*.js', browserSync.reload); gulp.watch('catalog/view/theme/woman/libs/**/*', browserSync.reload); }); // Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° хостинг gulp.task('deploy', function() { var conn = ftp.create({ host: 'hostname.com', user: 'username', password: 'userpassword', parallel: 10, log: gutil.log }); var globs = [ 'catalog/view/theme/woman/**' ]; return gulp.src(globs, {buffer: false}) .pipe(conn.dest('/path/to/folder/on/server')); }); gulp.task('default', gulp.task('watch')) 

    0