From 6d103c1e28cff4536479c51b6458e4bac6bf4254 Mon Sep 17 00:00:00 2001 From: Bobby Date: Tue, 4 Oct 2022 03:09:16 +0700 Subject: [PATCH] feat: replace del with fs-jetpack added as production dependency, because i plan to also replace built-in fs in production codes with fs-jetpack --- gulpfile.js | 44 +++++++++++++++++++++------------ package.json | 2 +- yarn.lock | 69 ++++++++++++++++++---------------------------------- 3 files changed, 52 insertions(+), 63 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 7ce5f5e..37b3158 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,10 +1,11 @@ const { exec } = require('child_process') +const path = require('path') const gulp = require('gulp') const cssnano = require('cssnano') -const del = require('del') const buble = require('gulp-buble') const eslint = require('gulp-eslint-new') const gulpif = require('gulp-if') +const jetpack = require('fs-jetpack') const nodemon = require('gulp-nodemon') const postcss = require('gulp-postcss') const postcssPresetEnv = require('postcss-preset-env') @@ -25,8 +26,8 @@ try { // This will prevent IDE's Git from unnecessarily // building diff's during development. const dist = process.env.NODE_ENV === 'development' - ? './dist-dev' - : './dist' + ? path.join(__dirname, './dist-dev') + : path.join(__dirname, './dist') const postcssPlugins = [ postcssPresetEnv() @@ -75,27 +76,38 @@ gulp._settle = false /** TASKS: CLEAN */ -gulp.task('clean:style', () => { - return del([ - `${dist}/**/*.css`, - `${dist}/**/*.css.map` - ]) +gulp.task('clean:style', async () => { + return jetpack.findAsync(dist, { + matching: '**/*.css*(.map)' + }).then(files => + Promise.all(files.map(file => + jetpack.removeAsync(file) + )) + ) }) gulp.task('clean:js', () => { - return del([ - `${dist}/**/*.js`, - `${dist}/**/*.js.map` - ]) + return jetpack.findAsync(dist, { + matching: '**/*.js*(.map)' + }).then(files => + Promise.all(files.map(file => + jetpack.removeAsync(file) + )) + ) }) gulp.task('clean:rest', () => { - return del([ - `${dist}/*` - ]) + // Delete all other files and sub-directories + return jetpack.findAsync(dist, { + directories: true + }).then(files => + Promise.all(files.map(file => + jetpack.removeAsync(file) + )) + ) }) -gulp.task('clean', gulp.parallel('clean:style', 'clean:js', 'clean:rest')) +gulp.task('clean', gulp.series(gulp.parallel('clean:style', 'clean:js'), 'clean:rest')) /** TASKS: BUILD */ diff --git a/package.json b/package.json index 8ac4af5..55cb2e4 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "fastq": "~1.13.0", "fluent-ffmpeg": "~2.1.2", "fresh": "~0.5.2", + "fs-jetpack": "~5.0.0", "helmet": "~6.0.0", "hyper-express": "~6.4.10", "jszip": "~3.10.1", @@ -66,7 +67,6 @@ "browserslist": "~4.21.4", "bulma": "~0.9.4", "cssnano": "~5.1.13", - "del": "~6.1.1", "eslint": "~8.24.0", "eslint-config-standard": "~17.0.0", "eslint-plugin-compat": "~4.0.2", diff --git a/yarn.lock b/yarn.lock index a4a753d..e65b778 100644 --- a/yarn.lock +++ b/yarn.lock @@ -519,14 +519,6 @@ agent-base@6: dependencies: debug "4" -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -951,6 +943,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -1193,11 +1192,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" @@ -1673,20 +1667,6 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -del@~6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" - integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== - dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" - delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -2503,6 +2483,13 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-jetpack@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-5.0.0.tgz#020bde38f9d4a5422fc663b7934ac8abdc64a885" + integrity sha512-0f9QoIbfAq/DuafAQisvsHJmLnJB2D53d9FXIu0UZPUg4Kzocez1+AinToPON6JD/C60kDlye121puiR5ivfdg== + dependencies: + minimatch "^5.1.0" + fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -2724,7 +2711,7 @@ globals@^13.15.0: dependencies: type-fest "^0.20.2" -globby@^11.0.1, globby@^11.1.0: +globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -2748,7 +2735,7 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4: +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -3338,16 +3325,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-inside@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -3920,6 +3897,13 @@ minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -4336,13 +4320,6 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"