Автоматическая сборка при любых изменениях в папке src
Это Gulpfile.js
const gulp = require('gulp');
const mocha = require('gulp-mocha');
const eslint = require('gulp-eslint');
const runSequence = require('run-sequence');
const istanbul = require('gulp-istanbul');
const mongodbData = require('gulp-mongodb-data');
//Tasks to run as watch during development. Runs unit tests with coverage and lint.
gulp.task('developer-watch', function (done) {
runSequence('test-unit-code-coverage', 'lint', done);
});
//Run eslint tests
gulp.task('lint', function () {
//Run on all js files except those in the node_modules or reports directories
return gulp.src(['**/*.js', '!node_modules/**', '!reports/**'])
//Run lint with the config file
.pipe(eslint('./config/.eslintrc'))
//Print any error or warning details to the console
.pipe(eslint.format())
//Print a summary to the console
.pipe(eslint.results(results => {
console.log('Total Results: ' + results.length);
console.log('Total Warnings: ' + results.warningCount);
console.log('Total Errors: ' + results.errorCount);
//This is necessary for the precommit task as it needs an exit code of 1 to be returned to know if it should fail or continue
if (results.errorCount !== 0) {
console.log('[ERROR] gulp preCommit task failed with ' + results.errorCount + ' lint errors');
console.log('[FAIL] gulp preCommit task failed - exiting with code ' + 1);
return process.exit(1);
}
}));
});
//Tasks to run before code commit is permitted. If any of these fail, commit cannot complete
gulp.task('preCommit', function () {
runSequence('test-unit', 'lint', error => {
//if any error happened in the previous tasks, exit with a code > 0
if (error) {
console.log('[ERROR] gulp preCommit task failed', error);
console.log('[FAIL] gulp preCommit task failed - exiting with code ' + 1);
return process.exit(1);
}
return process.exit(0);
});
});
//Load any files in the config folder prefixed with seed_ to the local mongo db. Each file will be a collection named the same as the file name.
//To be used for seeding the local user database for development purposed only.
gulp.task('seed_mongo', function () {
gulp.src('./src/api/persistence/seed/**')
.pipe(mongodbData({
mongoUrl: 'mongodb://localhost:27017/ma000_db',
dropCollection: true
}));
});
//Run all tests in the test/unit directory
gulp.task('test-unit', function () {
return gulp.src(['./test/unit/**/*.js'])
.pipe(mocha({
checkLeaks: true,
bail: true
}));
});
//Run unit test code coverage report by running all tests in the test/unit directory
gulp.task('test-unit-code-coverage', ['test-unit-code-coverage-setup'], function () {
return gulp.src('./test/unit/**/*.js', {read: false})
.pipe(mocha())
.pipe(istanbul.writeReports({
'dir': './reports/coverage/unit',
'reporters': [
'text',
'html'
]
}));
});
//Set up for code coverage to watch coverage of all files in the src directory
gulp.task('test-unit-code-coverage-setup', function () {
return gulp.src(['./src/**/*.js'])
.pipe(istanbul({includeUntested: true}))
.pipe(istanbul.hookRequire());
});
// gulp.task('default', ['preCommit']);
gulp.task('watch', function() {
gulp.watch('./src/**/*.js', ['build']);
})
Таким образом, в проекте есть две команды: сначала выполнить сборку с помощью npm run build, а затем запустить npm. После внесения каждого небольшого изменения я должен снова запустить эти команды, и это каждый раз тратит 5 минут. Я попытался добавить часы в конце, так что есть автоматическая сборка каждый раз, но это не происходит. Пожалуйста, помогите, как или что добавить, так что если есть какие-либо изменения в src, то есть автоматическая сборка. Дайте мне знать, если вам нужен какой-либо другой файл.