From f5bf5ebb82e3af420dcd23d602b1be6cc86838e1 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 3 May 2017 02:04:16 +0200 Subject: Replace sprockets/browserify with Webpack (#2617) * Replace browserify with webpack * Add react-intl-translations-manager * Do not minify in development, add offline-plugin for ServiceWorker background cache updates * Adjust tests and dependencies * Fix production deployments * Fix tests * More optimizations * Improve travis cache for npm stuff * Re-run travis * Add back support for custom.scss as before * Remove offline-plugin and babili * Fix issue with Immutable.List().unshift(...values) not working as expected * Make travis load schema instead of running all migrations in sequence * Fix missing React import in WarningContainer. Optimize rendering performance by using ImmutablePureComponent instead of React.PureComponent. ImmutablePureComponent uses Immutable.is() to compare props. Replace dynamic callback bindings in * Add react definitions to places that use JSX * Add Procfile.dev for running rails, webpack and streaming API at the same time --- config/webpack/loaders/assets.js | 12 ++++++++++++ config/webpack/loaders/babel.js | 5 +++++ config/webpack/loaders/coffee.js | 4 ++++ config/webpack/loaders/erb.js | 9 +++++++++ config/webpack/loaders/sass.js | 14 ++++++++++++++ 5 files changed, 44 insertions(+) create mode 100644 config/webpack/loaders/assets.js create mode 100644 config/webpack/loaders/babel.js create mode 100644 config/webpack/loaders/coffee.js create mode 100644 config/webpack/loaders/erb.js create mode 100644 config/webpack/loaders/sass.js (limited to 'config/webpack/loaders') diff --git a/config/webpack/loaders/assets.js b/config/webpack/loaders/assets.js new file mode 100644 index 000000000..595f073fc --- /dev/null +++ b/config/webpack/loaders/assets.js @@ -0,0 +1,12 @@ +const { env, publicPath } = require('../configuration.js') + +module.exports = { + test: /\.(jpg|jpeg|png|gif|svg|eot|ttf|woff|woff2)$/i, + use: [{ + loader: 'file-loader', + options: { + publicPath, + name: env.NODE_ENV === 'production' ? '[name]-[hash].[ext]' : '[name].[ext]' + } + }] +} diff --git a/config/webpack/loaders/babel.js b/config/webpack/loaders/babel.js new file mode 100644 index 000000000..c608e708f --- /dev/null +++ b/config/webpack/loaders/babel.js @@ -0,0 +1,5 @@ +module.exports = { + test: /\.js(\.erb)?$/, + exclude: /node_modules/, + loader: 'babel-loader' +} diff --git a/config/webpack/loaders/coffee.js b/config/webpack/loaders/coffee.js new file mode 100644 index 000000000..dae874249 --- /dev/null +++ b/config/webpack/loaders/coffee.js @@ -0,0 +1,4 @@ +module.exports = { + test: /\.coffee(\.erb)?$/, + loader: 'coffee-loader' +} diff --git a/config/webpack/loaders/erb.js b/config/webpack/loaders/erb.js new file mode 100644 index 000000000..4cd7d6849 --- /dev/null +++ b/config/webpack/loaders/erb.js @@ -0,0 +1,9 @@ +module.exports = { + test: /\.erb$/, + enforce: 'pre', + exclude: /node_modules/, + loader: 'rails-erb-loader', + options: { + runner: 'bin/rails runner' + } +} diff --git a/config/webpack/loaders/sass.js b/config/webpack/loaders/sass.js new file mode 100644 index 000000000..2cb0e759a --- /dev/null +++ b/config/webpack/loaders/sass.js @@ -0,0 +1,14 @@ +const ExtractTextPlugin = require('extract-text-webpack-plugin') +const { env } = require('../configuration.js') + +module.exports = { + test: /\.(scss|sass|css)$/i, + use: ExtractTextPlugin.extract({ + fallback: 'style-loader', + use: [ + { loader: 'css-loader', options: { minimize: env.NODE_ENV === 'production' } }, + 'postcss-loader', + 'sass-loader' + ] + }) +} -- cgit