diff --git a/package.json b/package.json index e2ba06c..acaf48e 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,11 @@ "name": "svelte-app", "version": "1.0.0", "devDependencies": { + "copy-webpack-plugin": "^5.0.3", "cross-env": "^5.2.0", "css-loader": "^2.1.1", "mini-css-extract-plugin": "^0.6.0", + "npm-run-all": "^4.1.5", "serve": "^11.0.0", "style-loader": "^0.23.1", "svelte": "^3.0.0", @@ -14,7 +16,8 @@ "webpack-dev-server": "^3.3.1" }, "scripts": { - "build": "cross-env NODE_ENV=production webpack", - "dev": "webpack-dev-server --content-base public" + "clean": "rm -f dist/*", + "build": "run-s clean && cross-env NODE_ENV=production webpack", + "dev": "webpack-dev-server --content-base dist" } } diff --git a/webpack.config.js b/webpack.config.js index 2f3019b..d113575 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,4 +1,5 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const CopyPlugin = require('copy-webpack-plugin'); const mode = process.env.NODE_ENV || 'development'; const prod = mode === 'production'; @@ -11,7 +12,7 @@ module.exports = { extensions: ['.mjs', '.js', '.svelte'] }, output: { - path: __dirname + '/public', + path: __dirname + '/dist', filename: '[name].js', chunkFilename: '[name].[id].js' }, @@ -45,7 +46,8 @@ module.exports = { plugins: [ new MiniCssExtractPlugin({ filename: '[name].css' - }) + }), + new CopyPlugin([{ from: 'public' }]) ], devtool: prod ? false: 'source-map' };