Can someone help me with this ? This is the error I get every time I run npm run group
assert.js:374 throw err; ^
AssertionError [ERR_ASSERTION]: Task function must be specified at Gulp.set [as _setTask] (/home/gaurav/Desktop/GSOC/CarbonFootprint/node_modules/undertaker/lib/set-task.js:10:3) at Gulp.task (/home/gaurav/Desktop/GSOC/CarbonFootprint/node_modules/undertaker/lib/task.js:13:8) at Object. (/home/gaurav/Desktop/GSOC/CarbonFootprint/gulpfile.js:361:6) at Module._compile (internal/modules/cjs/loader.js:955:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10) at Module.load (internal/modules/cjs/loader.js:811:32) at Function.Module._load (internal/modules/cjs/loader.js:723:14) at Module.require (internal/modules/cjs/loader.js:848:19) at require (internal/modules/cjs/helpers.js:74:18) at execute (/home/gaurav/Desktop/GSOC/CarbonFootprint/node_modules/gulp/node_modules/gulp-cli/lib/versioned/^4.0.0/index.js:36:18) at Liftoff.handleArguments (/home/gaurav/Desktop/GSOC/CarbonFootprint/node_modules/gulp/node_modules/gulp-cli/index.js:201:24) at Liftoff.execute (/home/gaurav/Desktop/GSOC/CarbonFootprint/node_modules/liftoff/index.js:201:12) at module.exports (/home/gaurav/Desktop/GSOC/CarbonFootprint/node_modules/flagged-respawn/index.js:51:3) at Liftoff. (/home/gaurav/Desktop/GSOC/CarbonFootprint/node_modules/liftoff/index.js:191:5) at /home/gaurav/Desktop/GSOC/CarbonFootprint/node_modules/liftoff/index.js:149:9 at /home/gaurav/Desktop/GSOC/CarbonFootprint/node_modules/v8flags/index.js:138:14 { generatedMessage: false, code: 'ERR_ASSERTION', actual: false, expected: true, operator: '==' } npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! carbon-footprint@6.0.2 group:
gulp group
npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the carbon-footprint@6.0.2 group script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in: npm ERR! /home/gaurav/.npm/_logs/2020-01-15T19_29_53_228Z-debug.log
And this is the gulpfile.js .I understand that the error is at line 368(as far as I can understand)
var gulp = require('gulp');
var Server = require('karma').Server;
var flatten = require('gulp-flatten');
var argv = require('yargs').argv;
var gulpif = require('gulp-if');
var gulpFilter = require('gulp-filter');
var deleteLines = require('gulp-delete-lines');
var stripDebug = require('gulp-strip-debug');
var uglify = require('gulp-uglify');
var shell = require('gulp-shell');
var del = require('delete-empty');
var runSequence = require('run-sequence');
var cheerio = require('gulp-cheerio');
var jeditor = require('gulp-json-editor');
var variables = require('./buildVariables.json');
var babel = require('gulp-babel');
var eslint = require('gulp-eslint');
var merged = require('merge-stream');
var lintFiles = [
'Source/**/*.js',
'!Source/**/*.min.js',
'!Source/Chrome/background/google-maps-api.js'
];
var gulpSequence = require('gulp-sequence');
var validatorFilter = gulpFilter('**/validatorServer.js', { restore: true });
var doMinify = argv.debugApp === undefined ? true : false;
var transpiledFiles = gulp
.src('Source/Core/**/*.js')
.pipe(babel())
.pipe(validatorFilter)
.pipe(
gulpif(
!doMinify,
deleteLines({
filters: [/Raven(.|\s)+?;/g]
})
)
)
.pipe(validatorFilter.restore);
var chromeBuildpath = 'Build/Chrome/';
var safariBuildpath = 'Build/Safari/CarbonFootprint.safariextension/';
var webExtensionBuildpath = 'Build/WebExtension-Firefox/';
process.env.mode = argv.debugApp === undefined ? 'production' : 'development';
gulp.task('prepareTest', function() {
var es6files = [
'Source/Core/core/storageManager.js',
'Source/Core/core/CarbonFootprintCommon.js',
'Source/Core/core/TrainsCarbonFootprintCore.js',
'Source/Core/core/helpers/flightDataHelper.js',
'Source/Core/core/FlightsFootprintCommon.js',
'Source/Core/core/FlightsCarbonFootprintCore.js',
'Source/Core/core/MapsCarbonFootprintCore.js',
'Source/Core/core/validator/basicValidator.js',
'Source/Core/core/validator/flightsValidator.js',
'Source/Core/core/validator/mapsValidator.js',
'Source/Core/core/validator/trainsValidator.js',
'Source/Core/core/inform.js',
'Spec/Mocks/SentryServerMock.js',
'Spec/Mocks/MockHelper.js',
'Spec/**/*Spec.js'
];
var jsonFiles = 'Source/Core/**/*.json';
return merged(
gulp
.src(es6files)
.pipe(babel())
.pipe(gulp.dest('Build/test')),
gulp.src(jsonFiles).pipe(gulp.dest('Build/test'))
);
});
gulp.task('karma', function(done) {
new Server(
{
configFile: __dirname + '/karma.conf.js',
singleRun: true
},
done
).start();
});
gulp.task('eslint', function() {
return gulp
.src(lintFiles)
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError());
});
gulp.task('localesChrome', function() {
return gulp
.src('Source/Locales/**/*.json')
.pipe(gulp.dest(chromeBuildpath + '_locales'));
});
gulp.task('coreChrome', function() {
var linkFilter = gulpFilter('**/knowMore.html', { restore: true });
var validatorFilter = gulpFilter('**/validatorServer.js', { restore: true });
return merged(
transpiledFiles
.pipe(gulpif(doMinify, uglify()))
.pipe(gulp.dest(chromeBuildpath)),
gulp
.src(['!Source/Core/**/*.js', 'Source/Core/**'])
.pipe(validatorFilter)
.pipe(
gulpif(
!doMinify,
deleteLines({
filters: [/Raven(.|\s)+?;/g]
})
)
)
.pipe(validatorFilter.restore)
.pipe(linkFilter)
.pipe(
cheerio(function($, file) {
$('#rating-link')
.attr('href', variables['chrome']['storeLink'])
.html(
`<i class="fas fa-external-link-alt" aria-hidden="true"></i> ${variables[
'chrome'
]['storeName']}`
);
$('#store-link-1')
.attr('href', variables['firefox']['storeLink'])
.html(
`<img src="${variables['firefox'][
'badge'
]}" class="img-responsive" />`
);
$('#store-link-2')
.attr('href', variables['safari']['storeLink'])
.html(
`<img src="${variables['safari'][
'badge'
]}" class="img-responsive" />`
);
})
)
.pipe(linkFilter.restore)
.pipe(gulp.dest(chromeBuildpath))
);
});
gulp.task('specificChrome', function() {
var jsFilter = gulpFilter('**/*.js', { restore: true });
var validatorFilter = gulpFilter('**/validatorServer.js', { restore: true });
return gulp
.src('Source/Chrome/**')
.pipe(jsFilter)
.pipe(gulpif(doMinify, stripDebug()))
.pipe(gulpif(doMinify, uglify()))
.pipe(jsFilter.restore)
.pipe(validatorFilter)
.pipe(
gulpif(
!doMinify,
deleteLines({
filters: [/Raven(.|\s)+;/g]
})
)
)
.pipe(validatorFilter.restore)
.pipe(gulp.dest(chromeBuildpath));
});
gulp.task('coreSafari', function() {
var linkFilter = gulpFilter('**/knowMore.html', { restore: true });
return merged(
transpiledFiles
.pipe(gulpif(doMinify, uglify()))
.pipe(gulp.dest(safariBuildpath)),
gulp
.src(['!Source/Core/**/*.js', 'Source/Core/**'])
.pipe(linkFilter)
.pipe(
cheerio(function($, file) {
/*
* TODO Safari is currently linked to https://safari-extensions.apple.com.
* Update variables.json with appropriate link once app is published
*/
$('#rating-link')
.attr('href', variables['safari']['storeLink'])
.html(
`<i class="fas fa-external-link-alt" aria-hidden="true"></i> ${variables[
'safari'
]['storeName']}`
);
$('#store-link-1')
.attr('href', variables['chrome']['storeLink'])
.html(
`<img src="${variables['chrome'][
'badge'
]}" class="img-responsive" />`
);
$('#store-link-2')
.attr('href', variables['firefox']['storeLink'])
.html(
`<img src="${variables['firefox'][
'badge'
]}" class="img-responsive" />`
);
})
)
.pipe(linkFilter.restore)
.pipe(gulp.dest(safariBuildpath))
);
});
gulp.task('chromeShared', function() {
var jsFilter = gulpFilter('**/*.js', { restore: true });
var validatorFilter = gulpFilter('**/validatorServer.js', { restore: true });
return gulp
.src('Source/Chrome/background/**')
.pipe(jsFilter)
.pipe(gulpif(doMinify, stripDebug()))
.pipe(gulpif(doMinify, uglify()))
.pipe(jsFilter.restore)
.pipe(validatorFilter)
.pipe(
gulpif(
!doMinify,
deleteLines({
filters: [/Raven(.|\s)+?;/g]
})
)
)
.pipe(validatorFilter.restore)
.pipe(gulp.dest(safariBuildpath + 'background/'));
});
gulp.task('specificSafari', function() {
var jsFilter = gulpFilter('**/*.js', { restore: true });
var validatorFilter = gulpFilter('**/validatorServer.js', { restore: true });
return gulp
.src('Source/Safari/**')
.pipe(jsFilter)
.pipe(gulpif(doMinify, stripDebug()))
.pipe(gulpif(doMinify, uglify()))
.pipe(jsFilter.restore)
.pipe(validatorFilter)
.pipe(
gulpif(
!doMinify,
deleteLines({
filters: [/Raven(.|\s)+?;/g]
})
)
)
.pipe(validatorFilter.restore)
.pipe(gulp.dest(safariBuildpath));
});
gulp.task('localesSafari', function() {
return gulp
.src('Source/Locales/**/*.json')
.pipe(gulp.dest(safariBuildpath + '_locales'));
});
// WebExtension Building
gulp.task('localesWebext', function() {
return gulp
.src('Source/Locales/**/*.json')
.pipe(gulp.dest(webExtensionBuildpath + '_locales'));
});
gulp.task('coreWebExt', function() {
var linkFilter = gulpFilter('**/knowMore.html', { restore: true });
return merged(
transpiledFiles
.pipe(gulpif(doMinify, uglify()))
.pipe(gulp.dest(webExtensionBuildpath)),
gulp
.src(['!Source/Core/**/*.js', 'Source/Core/**'])
.pipe(linkFilter)
.pipe(
cheerio(function($, file) {
$('#rating-link')
.attr('href', variables['firefox']['storeLink'])
.html(
`<i class="fas fa-external-link-alt" aria-hidden="true"></i> ${variables[
'firefox'
]['storeName']}`
);
$('#store-link-1')
.attr('href', variables['safari']['storeLink'])
.html(
`<img src="${variables['safari'][
'badge'
]}" class="img-responsive" />`
);
$('#store-link-2')
.attr('href', variables['chrome']['storeLink'])
.html(
`<img src="${variables['chrome'][
'badge'
]}" class="img-responsive" />`
);
})
)
.pipe(linkFilter.restore)
.pipe(gulp.dest(webExtensionBuildpath))
);
});
gulp.task('specificWebExt', function() {
var jsFilter = gulpFilter('**/*.js', { restore: true });
var manifestFilter = gulpFilter('**/manifest.json', { restore: true });
var validatorFilter = gulpFilter('**/validatorServer.js', { restore: true });
return gulp
.src('Source/Chrome/**')
.pipe(jsFilter)
.pipe(gulpif(doMinify, stripDebug()))
.pipe(gulpif(doMinify, uglify()))
.pipe(jsFilter.restore)
.pipe(validatorFilter)
.pipe(
gulpif(
!doMinify,
deleteLines({
filters: [/Raven(.|\s)+?;/g]
})
)
)
.pipe(validatorFilter.restore)
.pipe(manifestFilter)
.pipe(
jeditor({
applications: {
gecko: {
id: 'carbon-footprint@aossie.org',
strict_min_version: '53.0'
}
}
})
)
.pipe(manifestFilter.restore)
.pipe(gulp.dest(webExtensionBuildpath));
});
gulp.task('clearXAttr', shell.task(['xattr -rc ' + safariBuildpath]));
gulp.task('cleanChrome', function() {
return del.sync(chromeBuildpath);
});
gulp.task('cleanSafari', function() {
return del.sync(safariBuildpath);
});
gulp.task('cleanWebExt', function() {
return del.sync(webExtensionBuildpath);
});
gulp.task('groupChrome', [
'cleanChrome',
'localesChrome',
'coreChrome',
'specificChrome'
]);
gulp.task('copySafariFiles', [
'localesSafari',
'coreSafari',
'chromeShared',
'specificSafari'
]);
gulp.task('groupWebext', [
'cleanWebExt',
'localesWebext',
'coreWebExt',
'specificWebExt'
]);
gulp.task('groupSafari', function(done) {
runSequence('cleanSafari', 'copySafariFiles', 'clearXAttr', function() {
done();
});
});
gulp.task('group', [
'groupChrome',
'groupSafari',
'groupWebext'
]);
gulp.task('test', gulpSequence('prepareTest', 'eslint', 'karma'));
I am a beginner in Npm and Javscript world, so please if you could explain all the error and reasons behind it, that would help me a lot.Thanks in advance
You don't need run-sequence
first of all.
Change this:
gulp.task('group', [ // this is gulp3 syntax, you are using gulp4 presumably
'groupChrome',
'groupSafari',
'groupWebext'
]);
gulp.task('test', gulpSequence('prepareTest', 'eslint', 'karma'));
to
gulp.task('group', gulp.series( // here was your main problem
'groupChrome',
'groupSafari',
'groupWebext'
));
gulp.task('test', gulp.series('prepareTest', 'eslint', 'karma'));
So gulp v3 uses gulp.task('someTaskName', ['taskA', 'taskB', etc.])
gulp v4 uses gulp.task('someTaskName', gulp.series('taskA', 'taskB', etc.))
Search for gulp migration guide from v3 to v4 for more info.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.