summaryrefslogtreecommitdiffstats
path: root/webapp/webpack.config.js
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-03-14 08:50:46 -0400
committerChristopher Speller <crspeller@gmail.com>2016-03-16 18:02:55 -0400
commit12896bd23eeba79884245c1c29fdc568cf21a7fa (patch)
tree4e7f83d3e2564b9b89d669e9f7905ff11768b11a /webapp/webpack.config.js
parent29fe6a3d13c9c7aa490fffebbe5d1b5fdf1e3090 (diff)
downloadchat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.gz
chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.bz2
chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.zip
Converting to Webpack. Stage 1.
Diffstat (limited to 'webapp/webpack.config.js')
-rw-r--r--webapp/webpack.config.js82
1 files changed, 82 insertions, 0 deletions
diff --git a/webapp/webpack.config.js b/webapp/webpack.config.js
new file mode 100644
index 000000000..14abf6ffa
--- /dev/null
+++ b/webapp/webpack.config.js
@@ -0,0 +1,82 @@
+const webpack = require('webpack');
+const path = require('path');
+const ExtractTextPlugin = require('extract-text-webpack-plugin');
+const CopyWebpackPlugin = require('copy-webpack-plugin');
+
+const htmlExtract = new ExtractTextPlugin('html', 'root.html');
+
+module.exports = {
+ entry: ['babel-polyfill', './root.jsx', 'root.html'],
+ output: {
+ path: 'dist',
+ publicPath: '/static/',
+ filename: 'bundle.js'
+ },
+ devtool: 'source-map',
+ module: {
+ loaders: [
+ {
+ test: /\.jsx?$/,
+ loader: 'babel-loader',
+ exclude: /(node_modules|non_npm_dependencies)/,
+ query: {
+ presets: ['react', 'es2015', 'stage-0'],
+ plugins: ['transform-runtime']
+ }
+ },
+ {
+ test: /\.json$/,
+ loader: 'json-loader'
+ },
+ {
+ test: /(node_modules|non_npm_dependencies)\/.+\.(js|jsx)$/,
+ loader: 'imports-loader',
+ query: {
+ $: 'jquery',
+ jQuery: 'jquery'
+ }
+ },
+ {
+ test: /\.scss$/,
+ loaders: ['style', 'css', 'sass']
+ },
+ {
+ test: /\.css$/,
+ loaders: ['style', 'css']
+ },
+ {
+ test: /\.(png|eot|tiff|svg|woff2|woff|ttf|gif)$/,
+ loader: 'file-loader',
+ query: {
+ name: 'files/[hash].[ext]'
+ }
+ },
+ {
+ test: /\.html$/,
+ loader: htmlExtract.extract('html?attrs=link:href')
+ }
+ ]
+ },
+ sassLoader: {
+ includePaths: ['node_modules/compass-mixins/lib']
+ },
+ plugins: [
+ new webpack.ProvidePlugin({
+ 'window.jQuery': 'jquery'
+ }),
+ htmlExtract,
+ new CopyWebpackPlugin([
+ {from: 'images/emoji', to: 'emoji'}
+ ])
+ ],
+ resolve: {
+ alias: {
+ jquery: 'jquery/dist/jquery'
+ },
+ modules: [
+ 'node_modules',
+ 'non_npm_dependencies',
+ path.resolve(__dirname)
+ ]
+ }
+};