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']);