diff options
| author | mokha <mokha@cisco.com> | 2018-09-29 09:52:31 -0600 |
|---|---|---|
| committer | mokha <mokha@cisco.com> | 2018-09-29 09:52:31 -0600 |
| commit | a6235c463c6b6ac42bcf4ae6568be0687a59538d (patch) | |
| tree | 725a793abdfffacd1bbe5d0f10b2aec74fad2bde | |
| parent | fb63e5f976598dd23c0007497c201bd3f194c2ba (diff) | |
clean the target dir before building
| -rw-r--r-- | package-lock.json | 9 | ||||
| -rw-r--r-- | package.json | 1 | ||||
| -rw-r--r-- | webpack.config.js | 2 | ||||
| -rw-r--r-- | webpack.parts.js | 5 |
4 files changed, 17 insertions, 0 deletions
diff --git a/package-lock.json b/package-lock.json index 5590e29..f1e24e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1885,6 +1885,15 @@ "source-map": "0.5.x" } }, + "clean-webpack-plugin": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz", + "integrity": "sha512-M1Li5yLHECcN2MahoreuODul5LkjohJGFxLPTjl3j1ttKrF5rgjZET1SJduuqxLAuT1gAPOdkhg03qcaaU1KeA==", + "dev": true, + "requires": { + "rimraf": "^2.6.1" + } + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", diff --git a/package.json b/package.json index 68ca4d1..95af9fb 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "babel-loader": "^8.0.4", "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-preset-env": "^1.7.0", + "clean-webpack-plugin": "^0.1.19", "css-loader": "^1.0.0", "file-loader": "^2.0.0", "glob": "^7.1.3", diff --git a/webpack.config.js b/webpack.config.js index f6b1a93..05bc7cd 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -6,6 +6,7 @@ const parts = require('./webpack.parts'); const PATHS = { app: path.join(__dirname, "src"), + build: path.join(__dirname, "dist"), }; const commonConfig = merge([ @@ -19,6 +20,7 @@ const commonConfig = merge([ parts.loadJavaScript({ include: PATHS.app }), ]); const productionConfig = merge([ + parts.clean(PATHS.build), parts.generateSourceMaps({ type: 'source-map' }), parts.extractCSS({ use: ["css-loader", parts.autoprefix()] diff --git a/webpack.parts.js b/webpack.parts.js index 347421d..8e19318 100644 --- a/webpack.parts.js +++ b/webpack.parts.js @@ -1,5 +1,6 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const PurifyCSSPlugin = require('purifycss-webpack'); +const CleanWebpackPlugin = require('clean-webpack-plugin'); exports.extractCSS = ({ include, exclude, use = [] }) => { const plugin = new MiniCssExtractPlugin({ @@ -93,3 +94,7 @@ exports.loadJavaScript = ({ include, exclude } = {}) => ( exports.generateSourceMaps = ({ type }) => ({ devtool: type, }); + +exports.clean = path => ({ + plugins: [new CleanWebpackPlugin([path])], +}); |
