diff --git a/Tools/gulp/tasks/deleteBuildDirs.js b/Tools/gulp/tasks/deleteBuildDirs.js new file mode 100644 index 0000000000..7ce7ea8f7e --- /dev/null +++ b/Tools/gulp/tasks/deleteBuildDirs.js @@ -0,0 +1,11 @@ +const utils = require('../utils'); +const rootDir = utils.rootDir(); +const fs = require('fs-extra'); + +module.exports = { + src: '', + fn: async function() { + await fs.remove(`${rootDir}/CliClient/tests-build`); + await fs.remove(`${rootDir}/CliClient/build`); + }, +}; diff --git a/gulpfile.js b/gulpfile.js index 3299ea485a..d40f3bf33b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -5,8 +5,13 @@ const tasks = { copyLib: require('./Tools/gulp/tasks/copyLib'), tsc: require('./Tools/gulp/tasks/tsc'), updateIgnoredTypeScriptBuild: require('./Tools/gulp/tasks/updateIgnoredTypeScriptBuild'), + deleteBuildDirs: require('./Tools/gulp/tasks/deleteBuildDirs'), }; utils.registerGulpTasks(gulp, tasks); gulp.task('build', gulp.series('copyLib', 'tsc', 'updateIgnoredTypeScriptBuild')); + +// The clean task removes build directories and copy back the library. This is useful +// when switching from one branch to another. +gulp.task('clean', gulp.series('deleteBuildDirs', 'copyLib')); diff --git a/package.json b/package.json index 8cd8735e44..983c8bf726 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "generatePluginTypes": "rm -rf ./plugin_types && node node_modules/typescript/bin/tsc --declaration --declarationDir ./plugin_types --project tsconfig.json", "setupNewRelease": "node ./Tools/setupNewRelease", "linkChecker": "linkchecker https://joplinapp.org", + "clean": "npm run clean", "postinstall": "cd Tools && npm i && cd .. && cd ReactNativeClient && npm i && cd .. && cd ElectronClient && npm i && cd .. && cd CliClient && npm i && cd .. && gulp build" }, "husky": {