From c58dbf3d33fa58e56ef7a161b5c6b81e53b1e375 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Thu, 7 Mar 2019 17:42:42 +0100 Subject: [PATCH] Visual Console Client: improved the cleaning of the build output dir Former-commit-id: b92a726c0b098c73901feec53d872f9f25bc2fa1 --- visual_console/package-lock.json | 46 +++++++++++++++++++++++++++ visual_console/package.json | 6 ++-- visual_console/scripts/clean-build.js | 19 ----------- visual_console/webpack.config.js | 5 +++ 4 files changed, 53 insertions(+), 23 deletions(-) delete mode 100755 visual_console/scripts/clean-build.js diff --git a/visual_console/package-lock.json b/visual_console/package-lock.json index b712fb01c6..9d23abaef6 100644 --- a/visual_console/package-lock.json +++ b/visual_console/package-lock.json @@ -1174,6 +1174,52 @@ } } }, + "clean-webpack-plugin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-2.0.0.tgz", + "integrity": "sha512-xH9RUgXaeeW2VmtygwcGNFAmYzRrv93uHk+c5gYA4qHmX1gpRfjScsvvCT7PcUb0Z5Y30H/pswTM1qYApVLBXA==", + "requires": { + "del": "^4.0.0" + }, + "dependencies": { + "del": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-4.0.0.tgz", + "integrity": "sha512-/BnSJ+SuZyLu7xMn48kZY0nMXDi+5KNmR4g8n21Wivsl8+B9njV6/5kcTNE9juSprp0zRWBU28JuHUq0FqK1Nw==", + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.2" + } + }, + "is-path-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.0.0.tgz", + "integrity": "sha512-m5dHHzpOXEiv18JEORttBO64UgTEypx99vCxQLjbBvGhOJxnTNglYoFXxwo6AbsQb79sqqycQEHv2hWkHZAijA==" + }, + "is-path-in-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.0.0.tgz", + "integrity": "sha512-6Vz5Gc9s/sDA3JBVu0FzWufm8xaBsqy1zn8Q6gmvGP6nSDMw78aS4poBNeatWjaRpTpxxLn1WOndAiOlk+qY8A==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "p-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.0.0.tgz", + "integrity": "sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", diff --git a/visual_console/package.json b/visual_console/package.json index 562046f962..ec7fcbce8a 100644 --- a/visual_console/package.json +++ b/visual_console/package.json @@ -3,12 +3,9 @@ "version": "1.0.0", "description": "Visual Console", "scripts": { - "clean-build": "BUILD_PATH=\"pandora_console/include/visual-console\" node ./scripts/clean-build.js", - "prebuild": "npm run clean-build", "build": "BUILD_PATH=\"pandora_console/include/visual-console\" NODE_ENV=production webpack", - "prebuild:dev": "npm run clean-build", "build:dev": "BUILD_PATH=\"pandora_console/include/visual-console\" NODE_ENV=development webpack", - "build:watch": "BUILD_PATH=\"pandora_console/include/visual-console\" NODE_ENV=production webpack --watch", + "build:watch": "npm run build -- --watch", "format": "prettier", "lint": "eslint \"src/**/*.ts\"", "start": "webpack-dev-server --color --mode=development", @@ -31,6 +28,7 @@ "@typescript-eslint/eslint-plugin": "^1.4.2", "@typescript-eslint/parser": "^1.4.2", "awesome-typescript-loader": "^5.2.1", + "clean-webpack-plugin": "^2.0.0", "css-loader": "^2.1.0", "eslint": "^5.14.1", "eslint-config-prettier": "^4.0.0", diff --git a/visual_console/scripts/clean-build.js b/visual_console/scripts/clean-build.js deleted file mode 100755 index 9659c2ccef..0000000000 --- a/visual_console/scripts/clean-build.js +++ /dev/null @@ -1,19 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires -const path = require("path"); -// eslint-disable-next-line @typescript-eslint/no-var-requires -const fs = require("fs"); - -const buildPath = path.join( - __dirname, - "..", - "..", - process.env.BUILD_PATH && process.env.BUILD_PATH.length > 0 - ? process.env.BUILD_PATH - : "build" -); - -if (fs.existsSync(buildPath)) { - fs.readdirSync(buildPath).forEach(file => - fs.unlinkSync(path.join(buildPath, file)) - ); -} diff --git a/visual_console/webpack.config.js b/visual_console/webpack.config.js index edda3bd235..b5fcd2f8b9 100644 --- a/visual_console/webpack.config.js +++ b/visual_console/webpack.config.js @@ -1,6 +1,8 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires const path = require("path"); // eslint-disable-next-line @typescript-eslint/no-var-requires +const CleanWebpackPlugin = require("clean-webpack-plugin"); +// eslint-disable-next-line @typescript-eslint/no-var-requires const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const dev = process.env.NODE_ENV !== "production"; @@ -79,6 +81,9 @@ module.exports = { ] }, plugins: [ + // This plugin will remove all files inside Webpack's output.path directory, + // as well as all unused webpack assets after every successful rebuild. + new CleanWebpackPlugin(), // Options for the plugin which extract the CSS files to build a main file. new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output