diff --git a/gulpfile.js b/gulpfile.js index e1fd6f369..ccb9ed072 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -33,6 +33,7 @@ module.exports = { buildGenerators: buildTasks.generators, buildAdvancedCompilationTest: buildTasks.advancedCompilationTest, checkinBuilt: buildTasks.checkinBuilt, + clean: buildTasks.cleanBuildDir, gitSyncDevelop: gitTasks.syncDevelop, gitSyncMaster: gitTasks.syncMaster, gitCreateRC: gitTasks.createRC, diff --git a/package.json b/package.json index ad0401410..81925ec18 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "build:langfiles": "gulp buildLangfiles", "build:uncompressed": "gulp buildUncompressed", "bump": "npm --no-git-tag-version version 4.$(date +'%Y%m%d').0", + "clean": "gulp clean", "checkin": "gulp checkinBuilt", "deployDemos": "gulp deployDemos", "format": "git-clang-format", diff --git a/scripts/gulpfiles/build_tasks.js b/scripts/gulpfiles/build_tasks.js index 41b41a962..e87b1cf69 100644 --- a/scripts/gulpfiles/build_tasks.js +++ b/scripts/gulpfiles/build_tasks.js @@ -21,6 +21,8 @@ var through2 = require('through2'); var closureCompiler = require('google-closure-compiler').gulp(); var closureDeps = require('google-closure-deps'); var argv = require('yargs').argv; +var rimraf = require('rimraf'); + var {BUILD_DIR} = require('./config'); var {getPackageJson} = require('./helper_tasks'); @@ -549,6 +551,18 @@ function checkinBuilt() { ]).pipe(gulp.dest('.')); }; +/** + * This task cleans the build directory (by deleting it). + */ +function cleanBuildDir(done) { + // Sanity check. + if (BUILD_DIR === '.' || BUILD_DIR === '/') { + throw new Error(`Refusing to rm -rf ${BUILD_DIR}`); + } + rimraf.sync(BUILD_DIR); + done(); +} + module.exports = { build: build, core: buildCore, @@ -559,5 +573,6 @@ module.exports = { compressed: buildCompressed, generators: buildGenerators, checkinBuilt: checkinBuilt, + cleanBuildDir: cleanBuildDir, advancedCompilationTest: buildAdvancedCompilationTest, }