module.exports = {
    entry: "./ts/client/slime",
    output: {
        filename: "dist/slime.js"
    },
    devtool: "source-map",
    resolve: {
        extensions: [".ts"]
    },
    module: {
        loaders: [
            { test: /\.ts$/, loader: "ts-loader" }
        ]
    }
};
@@ -1,12 +1,668 @@
+function RandomDotsPlugin() %7B%0A%7D%0ARandomDotsPlugin.prototype.apply = function(compiler) %7B%0A    compiler.plugin(%22compile%22, function() %7B%0A        const dots = %5B%22Compiling%22%5D;%0A        const number = Math.floor(Math.random() * 100);%0A        for (let i = 0; i %3C number; i++) %7B%0A            dots.push(%22.%22);%0A        %7D%0A        console.log(dots.join(%22%22));%0A    %7D);%0A    compiler.plugin(%22after-compile%22, function(compilation, callback) %7B%0A        const dots = %5B%22Done%22%5D;%0A        const number = Math.floor(Math.random() * 100);%0A        for (let i = 0; i %3C number; i++) %7B%0A            dots.push(%22!%22);%0A        %7D%0A        console.log(dots.join(%22%22));%0A        callback();%0A    %7D);%0A%7D;%0A%0A
 module.expor
@@ -931,11 +931,52 @@
  %5D%0A    %7D
+,%0A    plugins: %5B new RandomDotsPlugin() %5D
 %0A%7D;

Add a plugin to webpack config to make it easier to see when a watched compilation has finished.