From 60ec67c2a9550684d78df67f23ee7a650cbae529 Mon Sep 17 00:00:00 2001 From: Andrey Okonetchnikov Date: Thu, 6 Oct 2016 15:59:19 +0200 Subject: [PATCH 1/3] Added `process.env.NODE_ENV` to webpack.DefinePlugin --- webpack.base.js | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/webpack.base.js b/webpack.base.js index 80a24194..2052d935 100644 --- a/webpack.base.js +++ b/webpack.base.js @@ -1,3 +1,5 @@ +/* eslint global-require: 0 */ + const webpack = require('webpack'); module.exports = { @@ -5,11 +7,11 @@ module.exports = { loaders: [ { test: /\.((png)|(eot)|(woff)|(woff2)|(ttf)|(svg)|(gif))(\?v=\d+\.\d+\.\d+)?$/, - loader: 'url-loader?limit=100000' + loader: 'url-loader?limit=100000', }, { test: /\.json$/, - loader: 'json-loader' + loader: 'json-loader', }, { test: /\.scss$/, @@ -31,15 +33,21 @@ module.exports = { 'transform-object-assign', 'transform-object-rest-spread', 'lodash', - 'react-hot-loader/babel' - ] - } - } - ] + 'react-hot-loader/babel', + ], + }, + }, + ], }, - postcss: [ require('postcss-import')({ addDependencyTo: webpack }), - require('postcss-cssnext') + require('postcss-cssnext'), + ], + plugins: [ + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify(process.env.NODE_ENV), + }, + }), ], }; From 44d652de35c3342a8c161d6d266c781d6407a83e Mon Sep 17 00:00:00 2001 From: Andrey Okonetchnikov Date: Thu, 6 Oct 2016 16:10:21 +0200 Subject: [PATCH 2/3] Added utils.css with .undefined global class --- src/utils.css | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/utils.css diff --git a/src/utils.css b/src/utils.css new file mode 100644 index 00000000..85da4449 --- /dev/null +++ b/src/utils.css @@ -0,0 +1,25 @@ +/* stylelint-disable */ +/* This is an utility file that should not be included in production build */ +:global { + & .undefined { + position: fixed !important; + top: 0 !important; + right: 0 !important; + bottom: 0 !important; + left: 0 !important; + display: flex !important; + align-items: center !important; + justify-content: center !important; + background: red !important; + color: white !important; + font-weight: bold !important; + font-size: 30px !important; + } + + & .undefined::after { + display: block !important; + padding: 15px 30px !important; + content: 'ERROR! You are missing a class definition in your css module! Inspect me to find out where.' !important; + } +} +/* stylelint-enable */ From b1a039701cfd5c0071364b68e12e2d9a0c9a0e75 Mon Sep 17 00:00:00 2001 From: Andrey Okonetchnikov Date: Thu, 6 Oct 2016 16:11:11 +0200 Subject: [PATCH 3/3] Require utils.css in dev mode only --- src/index.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index e7c8ffe1..ba980758 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,16 @@ import React from 'react'; import { render } from 'react-dom'; import { AppContainer } from 'react-hot-loader'; -import Root from './root'; -import registry from './lib/registry'; import 'file?name=index.html!../example/index.html'; import 'react-toolbox/lib/commons.scss'; +import Root from './root'; +import registry from './lib/registry'; import './index.css'; +if (process.env.NODE_ENV !== 'production') { + require('./utils.css'); // eslint-disable-line +} + // Create mount element dynamically const el = document.createElement('div'); el.id = 'root';