Add first version of the frontend

As of now the only usable functionality is signin in/out and managing
authorized users, and even then there is much room for improvement.

Change-Id: Ib87fc6866f69113a230187710de8644b78391917
diff --git a/frontend/webpack.config.js b/frontend/webpack.config.js
new file mode 100644
index 0000000..7287e6c
--- /dev/null
+++ b/frontend/webpack.config.js
@@ -0,0 +1,56 @@
+const path = require('path')
+const json5 = require('json5');
+const {VueLoaderPlugin} = require('vue-loader');
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+
+module.exports = (env, args) => {
+  return {
+    entry: './src/main.js',
+    output: {
+      filename: '[name].[contenthash:8].bundle.js',
+      path: path.resolve(__dirname, './dist'),
+      clean: true,
+    },
+    module: {
+      rules: [
+        {
+          test: /\.vue$/,
+          loader: 'vue-loader',
+        },
+        {
+          test: /\.s[ac]ss$/,
+          use: [
+            'vue-style-loader',
+            'css-loader',
+            'sass-loader',
+          ],
+        },
+        {
+          test: /\.css$/,
+          use: [
+            'vue-style-loader',
+            'css-loader',
+          ],
+        },
+        {
+          test: /\.json5$/,
+          type: 'json',
+          parser: {
+            parse: json5.parse,
+          },
+        }
+      ],
+    },
+    plugins: [
+      new VueLoaderPlugin(),
+      new HtmlWebpackPlugin({
+        filename: 'index.html',
+        template: 'index.html',
+      }),
+    ],
+    devServer: {
+      static: './dist',
+    },
+    devtool: (args.mode == 'production' ? 'source-map' : 'inline-source-map'),
+  };
+};