Help to run Gulp

2

Hi, I am creating a project with node.js and I want to run Gulp, which updates all the changes made to the code, css, server, etc., I do not know if you know how to formulate the question well and if you should show more code so they can help me.

But I get an error and Gulp does not pass, so I can not update the changes and I can not go ahead with the project. I have to put Gulp when I run the server, but the server runs but not gulp. It also does not work for me to run npm run build. I show my code and the error in case you could help me, I've been stuck for days. Thanks.

  

assert.js: 42 throw new errors.AssertionError ({^

     

AssertionError [ERR_ASSERTION]: Task function must be specified       at Gulp.set [as _setTask] (C: \ Users \ victor \ COURSES \ JAVASCRIPT-NODE \ PROJECT   MICHAELGRAM \ michaelgram \ node_modules \ undertaker \ lib \ set-task.js: 10: 3)       at Gulp.task (C: \ Users \ victor \ COURSES \ JAVASCRIPT-NODE \ MICHAELGRAM PROJECT \ michaelgram \ node_modules \ undertaker \ lib \ task.js: 13: 8)       at Object. (C: \ Users \ victor \ COURSES \ JAVASCRIPT-NODE \ PROJECT   MICHAELGRAM \ michaelgram \ gulpfile.js: 125: 6)       at Module._compile (module.js: 652: 30)       at Object.Module._extensions..js (module.js: 663: 10)       at Module.load (module.js: 565: 32)       at tryModuleLoad (module.js: 505: 12)       at Function.Module._load (module.js: 497: 3)       at Module.require (module.js: 596: 17)       at require (internal / module.js: 11: 18) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] build: gulp npm ERR! Exit   status 1 npm ERR! npm ERR! Failed at the [email protected] build   script npm ERR! This is probably not a problem with npm. There is   likely additional logging output above.

package.jon

{
  "name": "michaelgram",
  "version": "0.1.0",
  "description": "Programa para compartir fotos con tus amigos",
  "main": "server.js",
  "keywords": [
    "Curso",
    "definitivo",
    "de",
    "javascript",
    "de",
    "Platzi"
  ],
  "author": "Miguel Espeso",
  "license": "MIT",
  "dependencies": {
    "aws-sdk": "^2.239.1",
    "axios": "^0.18.0",
    "babel-polyfill": "^6.26.0",
    "body-parser": "^1.18.3",
    "cookie-parser": "^1.4.3",
    "empty-element": "^1.0.0",
    "express": "^4.16.3",
    "express-session": "^1.15.6",
    "file-extension": "^4.0.2",
    "intl": "^1.2.5",
    "intl-messageformat": "^2.2.0",
    "intl-relativeformat": "^2.1.0",
    "materialize-css": "^0.100.2",
    "multer": "^1.3.0",
    "multer-s3": "^2.7.0",
    "node-pre-gyp": "^0.9.1",
    "page": "^1.8.6",
    "passport": "^0.4.0",
    "passport-facebook": "^2.1.1",
    "passport-local": "^1.0.0",
    "michaelgram-client": "file:../michaelgram-client",
    "pug": "^2.0.3",
    "readable-stream": "^2.3.6",
    "superagent": "^3.8.3",
    "title": "^3.2.0",
    "vinyl-source-stream": "^2.0.0",
    "yo-yo": "^1.4.1"
  },
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.4",
    "babel-plugin-syntax-async-functions": "^6.13.0",
    "babel-plugin-transform-regenerator": "^6.26.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-es2015": "^6.24.1",
    "babelify": "^8.0.0",
    "browserify": "^16.2.0",
    "gulp": "^4.0.0",
    "gulp-rename": "^1.2.2",
    "gulp-sass": "^4.0.1",
    "watchify": "^3.11.0",
    "webpack": "^2.7.0"
  },
  "scripts": {
    "build": "gulp",
    "start": "concurrently \"gulp watch\" \"node server.js\""
  }
}

Server File

let express = require('express');
let aws = require('aws-sdk');
let multer  = require('multer');
let multerS3 = require('multer-s3');
let ext = require('file-extension');
let cookieParser = require('cookie-parser');
let bodyParser = require('body-parser');
let expressSession = require('express-session');
let passport = require('passport');
let michaelgram = require('michaelgram-client')
let config = require('./config');
let port = process.env.PORT || 3000;

let client = michaelgram.createClient(config.client);

let s3 = new aws.S3({
  accessKeyId: config.aws.accessKey,
  secretAccessKey: config.aws.secretKey
});

let storage = multerS3({
  s3: s3,
  bucket: 'michaelgram',
  acl: 'public-read',
  metadata: function (req, file, cb) {
    cb(null, { fieldName: file.fieldname })
  },
  key: function (req, file, cb) {
    cb(null, +Date.now() + '.' + ext(file.originalname))
  }
});


let upload = multer({ storage: storage }).single('picture');

let app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(expressSession({
  secret: config.secret,
  resave: false,
  saveUninitialized: false
}))
app.use(passport.initialize())
app.use(passport.session())
app.set('view engine', 'pug');
app.use(express.static('public'));

app.get('/', function (req, res) {
  res.render('index', { title: 'Michaelgram' });
})

app.get('/signup', function (req, res) {
  res.render('index', { title: 'Michaelgram - Signup' });
})

app.post('/signup', function (req, res) {
  let user = req.body;
  client.saveUser(user, function (err, usr) {
    if (err) return res.status(500).send(err.message)

    res.redirect('/signin');
  });
});

app.get('/signin', function (req, res) {
  res.render('index', { title: 'Michaelgram - Signin' });
})

app.get('/api/pictures', function (req, res, next) {
  let pictures = [
    {
      user: {
        username: 'miguelito',
        avatar: 'https://i1.wp.com/www.sopitas.com/wp-content/uploads/2016/04/escorpiones.jpg?fit=860%2C484'
      },
      url: 'office.jpg',
      likes: 0,
      liked: false,
      createdAt: newDate().getTime()
    },
    {
      user: {
        username: 'miguelito',
        avatar: 'https://i1.wp.com/www.sopitas.com/wp-content/uploads/2016/04/escorpiones.jpg?fit=860%2C484'
      },
      url: 'office.jpg',
      likes: 1,
      liked: true,
      createdAt: newDate().setDate(newDate().getDate() - 10)
    }
  ];

  setTimeout(function () {
    res.send(pictures);
  }, 2000)
});

app.post('/api/pictures', function (req, res) {
  upload(req, res, function (err) {
    if (err) {
      return res.send(500, "Error uploading file");
    }
    res.send('File uploaded');
  })
})

app.get('/api/user/:username', (req, res) => {
  const user = {
    username: 'miguelito',
  }

  res.send(user);
})

app.get('/:username', function (req, res) {
  res.render('index', { title: 'Michaelgram - ${req.params.username}' });
})

app.get('/:username/:id', function (req, res) {
  res.render('index', { title: 'Michaelgram - ${req.params.username}' });
})

app.listen(3000, function (err) {
  if (err) returnconsole.log('Hubo un error'), process.exit(1);

  console.log('Michaelgram escuchando en el puerto 3000');
})

File gulpfile.js

let gulp = require('gulp');
let sass = require('gulp-sass');
let rename = require('gulp-rename');
let babel = require('babelify');
let browserify = require('browserify');
let source = require('vinyl-source-stream');
let watchify = require('watchify');

gulp.task('styles', function () {
  gulp
    .src('index.scss')
    .pipe(sass())
    .pipe(rename('app.css'))
    .pipe(gulp.dest('public'));
})

gulp.task('assets', function () {
  gulp
    .src('assets/*')
    .pipe(gulp.dest('public'));
})

functioncompile(watch) {
  let bundle = browserify('./src/index.js', {debug: true});

  if (watch) {
    bundle = watchify(bundle);
    bundle.on('update', function () {
      console.log('--> Bundling...');
      rebundle();
    });
  }

  functionrebundle() {
    bundle
      .transform(babel, { presets: [ 'es2015' ], plugins: [ 'syntax-async-functions', 'transform-regenerator' ] })
      .bundle()
      .on('error', function (err) { console.log(err); this.emit('end') })
      .pipe(source('index.js'))
      .pipe(rename('app.js'))
      .pipe(gulp.dest('public'));
  }

  rebundle();
}

gulp.task('build', function () {
  return compile();
});

gulp.task('watch', function () { return compile(true); });

gulp.task('default', ['styles', 'assets', 'build']);
    
asked by Miguel Espeso 21.05.2018 в 19:08
source

1 answer

1
  

The way to execute serial or parallel tasks is different in Gulp 4.

The execution of a series of tasks do it in the following way:

var default = gulp.series('styles', 'assets', 'build');
gulp.task('default', default );

And if you wanted to do it in parallel and then the build, you could do:

var default = gulp.series(gulp.parallel('styles', 'assets'),'build');
gulp.task('default',default );
    
answered by 21.05.2018 / 20:36
source