diff --git a/package.json b/package.json index c0ecb27..04c9ed8 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "description": "", "main": "index.js", "scripts": { - "build": "webpack", - "dev-server": "webpack-dev-server --watch --progress --colors" + "build": "webpack --config webpack/prod.conf.js", + "dev-server": "webpack-dev-server --watch --progress --colors --config webpack/dev.conf.js" }, "repository": { "type": "git", @@ -18,6 +18,9 @@ }, "homepage": "https://github.com/TimStallard/CryptoAssist#readme", "devDependencies": { + "babel-core": "^6.23.1", + "babel-loader": "^6.3.2", + "babel-preset-es2015": "^6.22.0", "chart.js": "^2.5.0", "css-loader": "^0.26.1", "file-saver": "^1.3.3", diff --git a/webpack.config.js b/webpack.config.js index 9e6aef1..5a781c7 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -11,7 +11,8 @@ module.exports = { plugins: [ new HtmlWebpackPlugin({ template: "./index.html" - }) + }), + new webpack.optimize.UglifyJsPlugin() ], module: { rules: [ @@ -32,9 +33,22 @@ module.exports = { loader: "handlebars-loader" } ] + }, + { + test: /\.js$/, + exclude: /node_modules/, + use: [ + { + loader: "babel-loader", + query: { + presets: ["es2015"] + } + } + ] } ] - } + }, + devtool: "source-map" } //SASS code from https://github.com/jtangelder/sass-loader licensed under MIT, see https://github.com/jtangelder/sass-loader/blob/master/LICENSE diff --git a/webpack/base.conf.js b/webpack/base.conf.js new file mode 100644 index 0000000..92d0d93 --- /dev/null +++ b/webpack/base.conf.js @@ -0,0 +1,39 @@ +var path = require("path"); +var HtmlWebpackPlugin = require("html-webpack-plugin"); +module.exports = { + context: path.join(__dirname, "..", "src"), + entry: "./index.js", + output: { + path: path.join(__dirname, "..", "build"), + filename: "app.js" + }, + plugins: [ + new HtmlWebpackPlugin({ + template: "./index.html" + }) + ], + module: { + rules: [ + { + test: /\.scss$/, + use: [{ + loader: "style-loader" + }, { + loader: "css-loader" + }, { + loader: "sass-loader" + }] + }, + { + test: /\.hbs$/, + use: [ + { + loader: "handlebars-loader" + } + ] + } + ] + } +} + +//SASS code from https://github.com/jtangelder/sass-loader licensed under MIT, see https://github.com/jtangelder/sass-loader/blob/master/LICENSE diff --git a/webpack/dev.conf.js b/webpack/dev.conf.js new file mode 100644 index 0000000..0dfde88 --- /dev/null +++ b/webpack/dev.conf.js @@ -0,0 +1,3 @@ +var config = require("./base.conf.js"); +config.devtool = "source-map"; +module.exports = config; diff --git a/webpack/prod.conf.js b/webpack/prod.conf.js new file mode 100644 index 0000000..bcd4be7 --- /dev/null +++ b/webpack/prod.conf.js @@ -0,0 +1,16 @@ +var config = require("./base.conf.js"); +var webpack = require("webpack"); +config.module.rules.push({ + test: /\.js$/, + exclude: /node_modules/, + use: [ + { + loader: "babel-loader", + query: { + presets: ["es2015"] + } + } + ] +}); +config.plugins.push(new webpack.optimize.UglifyJsPlugin()); +module.exports = config;