summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-03-16 23:00:33 -0400
committerChristopher Speller <crspeller@gmail.com>2016-03-17 11:32:06 -0400
commitfdc3207724fde8c0c3fae7e18d7ec8463e72e737 (patch)
tree1b9fe56ea196cfb8a1a870694e3ae9bb9b71b27f /webapp
parentd42459729c6015b07c2f0d872a44212e93bccb39 (diff)
downloadchat-fdc3207724fde8c0c3fae7e18d7ec8463e72e737.tar.gz
chat-fdc3207724fde8c0c3fae7e18d7ec8463e72e737.tar.bz2
chat-fdc3207724fde8c0c3fae7e18d7ec8463e72e737.zip
Webpack optimizations and fixes
Diffstat (limited to 'webapp')
-rw-r--r--webapp/Makefile19
-rw-r--r--webapp/package.json6
-rw-r--r--webapp/webpack.config.js30
3 files changed, 43 insertions, 12 deletions
diff --git a/webapp/Makefile b/webapp/Makefile
index 99f896e53..88ee625a4 100644
--- a/webapp/Makefile
+++ b/webapp/Makefile
@@ -1,4 +1,4 @@
-.PHONY: build test
+.PHONY: build test run clean
test:
@echo Checking for style guide compliance
@@ -12,7 +12,20 @@ test:
touch $@
-build: .npminstall
- @echo Building mattermost web client
+build: | .npminstall test
+ @echo Building mattermost Webapp
npm run build
+
+run: .npminstall
+ @echo Running mattermost Webapp for development
+
+ npm run run
+
+
+clean:
+ @echo Cleaning Webapp
+
+ rm -rf dist
+ rm -rf node_modules
+ rm .npminstall
diff --git a/webapp/package.json b/webapp/package.json
index 0d88a6212..25003114e 100644
--- a/webapp/package.json
+++ b/webapp/package.json
@@ -31,7 +31,7 @@
"babel-loader": "6.2.4",
"babel-plugin-transform-runtime": "6.6.0",
"babel-polyfill": "6.7.2",
- "babel-preset-es2015": "6.6.0",
+ "babel-preset-es2015-webpack": "6.4.0",
"babel-preset-react": "6.5.0",
"babel-preset-stage-0": "6.5.0",
"eslint": "2.2.0",
@@ -39,6 +39,7 @@
"exports-loader": "0.6.3",
"extract-text-webpack-plugin": "1.0.1",
"file-loader": "0.8.5",
+ "url-loader": "0.5.7",
"html-loader": "0.4.3",
"copy-webpack-plugin": "1.1.1",
"css-loader": "0.23.1",
@@ -52,6 +53,7 @@
},
"scripts": {
"check": "eslint --ext \".jsx\" --ignore-pattern node_modules --quiet .",
- "build": "webpack --progress"
+ "build": "webpack --optimize-dedupe",
+ "run": "webpack --progress"
}
}
diff --git a/webapp/webpack.config.js b/webapp/webpack.config.js
index 14abf6ffa..5e1df9bfe 100644
--- a/webapp/webpack.config.js
+++ b/webapp/webpack.config.js
@@ -17,20 +17,21 @@ module.exports = {
loaders: [
{
test: /\.jsx?$/,
- loader: 'babel-loader',
+ loader: 'babel',
exclude: /(node_modules|non_npm_dependencies)/,
query: {
- presets: ['react', 'es2015', 'stage-0'],
- plugins: ['transform-runtime']
+ presets: ['react', 'es2015-webpack', 'stage-0'],
+ plugins: ['transform-runtime'],
+ cacheDirectory: true
}
},
{
test: /\.json$/,
- loader: 'json-loader'
+ loader: 'json'
},
{
test: /(node_modules|non_npm_dependencies)\/.+\.(js|jsx)$/,
- loader: 'imports-loader',
+ loader: 'imports',
query: {
$: 'jquery',
jQuery: 'jquery'
@@ -46,7 +47,7 @@ module.exports = {
},
{
test: /\.(png|eot|tiff|svg|woff2|woff|ttf|gif)$/,
- loader: 'file-loader',
+ loader: 'file',
query: {
name: 'files/[hash].[ext]'
}
@@ -67,7 +68,22 @@ module.exports = {
htmlExtract,
new CopyWebpackPlugin([
{from: 'images/emoji', to: 'emoji'}
- ])
+ ]),
+ new webpack.optimize.UglifyJsPlugin({
+ 'screw-ie8': true,
+ mangle: {
+ toplevel: false
+ },
+ compress: {
+ warnings: false
+ },
+ comments: false
+ }),
+ new webpack.optimize.AggressiveMergingPlugin(),
+ new webpack.LoaderOptionsPlugin({
+ minimize: true,
+ debug: false
+ })
],
resolve: {
alias: {