From 76ceea0e52c77cad93ed18f2427f97fe13ed59cb Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Thu, 29 Mar 2018 15:43:14 -0400 Subject: [PATCH] tabs -> spaces --- config/async-component-loader.js | 44 +-- config/async-component.js | 46 +-- config/client-boot.js | 27 -- config/prerender-loader.js | 64 +++++ config/prerender.js | 18 +- config/watch-timestamps-plugin.js | 34 +-- src/assets/icon.png | Bin 92075 -> 27363 bytes src/components/app/style.scss | 36 +-- src/components/app/style.scss.d.ts | 1 + src/components/drawer/style.scss | 26 +- src/components/fab/style.scss | 24 +- src/components/header/style.scss | 57 ++-- src/components/home/style.scss | 14 +- src/index.html | 18 +- src/lib/fix-pmc.js | 38 +-- src/style/index.scss | 29 +- src/style/material-icons.scss | 46 +-- src/style/reset.scss | 14 +- webpack.config.js | 438 ++++++++++++++--------------- 19 files changed, 503 insertions(+), 471 deletions(-) delete mode 100644 config/client-boot.js create mode 100644 config/prerender-loader.js diff --git a/config/async-component-loader.js b/config/async-component-loader.js index 10131ddb..90ca4cd3 100644 --- a/config/async-component-loader.js +++ b/config/async-component-loader.js @@ -3,27 +3,27 @@ let componentPath = require.resolve('./async-component'); module.exports = function () { }; module.exports.pitch = function (remainingRequest) { - this.cacheable && this.cacheable(); - let query = loaderUtils.getOptions(this) || {}; - let routeName = typeof query.name === 'function' ? query.name(this.resourcePath) : null; - let name; - if (routeName !== null) { - name = routeName; - } - else if ('name' in query) { - name = query.name; - } - else if ('formatName' in query) { - name = query.formatName(this.resourcePath); - } + this.cacheable && this.cacheable(); + let query = loaderUtils.getOptions(this) || {}; + let routeName = typeof query.name === 'function' ? query.name(this.resourcePath) : null; + let name; + if (routeName !== null) { + name = routeName; + } + else if ('name' in query) { + name = query.name; + } + else if ('formatName' in query) { + name = query.formatName(this.resourcePath); + } - return ` - import async from ${JSON.stringify(componentPath)}; - function load(cb) { - require.ensure([], function (require) { - cb( require(${loaderUtils.stringifyRequest(this, '!!' + remainingRequest)}) ); - }${name ? (', ' + JSON.stringify(name)) : ''}); - } - export default async(load); - `; + return ` + import async from ${JSON.stringify(componentPath)}; + function load(cb) { + require.ensure([], function (require) { + cb( require(${loaderUtils.stringifyRequest(this, '!!' + remainingRequest)}) ); + }${name ? (', ' + JSON.stringify(name)) : ''}); + } + export default async(load); + `; }; \ No newline at end of file diff --git a/config/async-component.js b/config/async-component.js index b9ba69f3..b4dfc4d4 100644 --- a/config/async-component.js +++ b/config/async-component.js @@ -1,30 +1,30 @@ import { h, Component } from 'preact'; export default function (req) { - function Async() { - Component.call(this); + function Async() { + Component.call(this); - let b, old; - this.componentWillMount = () => { - b = this.base = this.nextBase || this.__b; // short circuits 1st render - req(m => { - this.setState({ child: m.default || m }); - }); - }; + let b, old; + this.componentWillMount = () => { + b = this.base = this.nextBase || this.__b; // short circuits 1st render + req(m => { + this.setState({ child: m.default || m }); + }); + }; - this.shouldComponentUpdate = (_, nxt) => { - nxt = nxt.child === void 0; - if (nxt && old === void 0 && !!b) { - old = h(b.nodeName, { dangerouslySetInnerHTML: { __html: b.innerHTML } }); - } - else { - old = ''; // dump it - } - return !nxt; - }; + this.shouldComponentUpdate = (_, nxt) => { + nxt = nxt.child === void 0; + if (nxt && old === void 0 && !!b) { + old = h(b.nodeName, { dangerouslySetInnerHTML: { __html: b.innerHTML } }); + } + else { + old = ''; // dump it + } + return !nxt; + }; - this.render = (p, s) => s.child ? h(s.child, p) : old; - } - (Async.prototype = new Component()).constructor = Async; - return Async; + this.render = (p, s) => s.child ? h(s.child, p) : old; + } + (Async.prototype = new Component()).constructor = Async; + return Async; } \ No newline at end of file diff --git a/config/client-boot.js b/config/client-boot.js deleted file mode 100644 index 742acf1b..00000000 --- a/config/client-boot.js +++ /dev/null @@ -1,27 +0,0 @@ -import { h, render } from 'preact'; - -if (process.env.NODE_ENV === 'development') { - // enable preact devtools - require('preact/debug'); -} -else if (process.env.ADD_SW && 'serviceWorker' in navigator && location.protocol === 'https:') { - // eslint-disable-next-line no-undef - navigator.serviceWorker.register(__webpack_public_path__ + 'sw.js'); -} - -const interopDefault = m => m && m.default ? m.default : m; - -let app = interopDefault(require('app-entry-point')); - -if (typeof app === 'function') { - let root = document.getElementById('app') || document.body.firstElementChild; - - let init = () => { - let app = interopDefault(require('app-entry-point')); - root = render(h(app), document.body, root); - }; - - if (module.hot) module.hot.accept('app-entry-point', init); - - init(); -} diff --git a/config/prerender-loader.js b/config/prerender-loader.js new file mode 100644 index 00000000..91f0647a --- /dev/null +++ b/config/prerender-loader.js @@ -0,0 +1,64 @@ +const path = require('path'); +const vm = require('vm'); + +module.exports = function (content) { + const jsdom = require('jsdom'); + const preact = require('preact'); + const renderToString = require('preact-render-to-string'); + + this.cacheable && this.cacheable(); + + const callback = this.async(); + + // const dom = new jsdom.JSDOM(``, { + const dom = new jsdom.JSDOM(content, { + includeNodeLocations: false, + runScripts: 'outside-only' + }); + const { window } = dom; + const { document } = window; + + // console.log(content); + + const root = document.getElementById('app'); + this.loadModule(path.join(__dirname, 'client-boot.js'), (err, source) => { + if (err) return callback(err); + + console.log(source); + + let mod = eval(source); + let props = {}; + // console.log(mod); + let vnode = preact.createElement(mod, props); + let frag = document.createElement('div'); + frag.innerHTML = renderToString(vnode); + root.parentNode.replaceChild(frag.firstChild, root); + + let html = dom.serialize(); + callback(null, html); + // return html = `module.exports = ${JSON.stringify(html)}`; + // return 'module.exports = ' + JSON.stringify(content).replace(/\{\{PRERENDER\}\}/gi, `" + require("preact-render-to-string")(require("app-entry-point")) + "`); + }); + + // global.window = global; + // global.document = {}; + // return 'module.exports = ' + JSON.stringify(content).replace(/\{\{PRERENDER\}\}/gi, `" + require("preact-render-to-string")(require("app-entry-point")) + "`); + + /* + let callback = this.async(); + + let parts = content.split(/\{\{prerender\}\}/gi); + + if (parts.length<2) { + // callback(null, `module.exports = ${JSON.stringify(content)}`); + callback(null, content); + return; + } + + // let html = ` + // window = {}; + // module.exports = ${JSON.stringify(parts[0])} + require("preact-render-to-string")(require("app-entry-point")) + ${JSON.stringify(parts[1])}`; + let html = `module.exports = ${JSON.stringify(parts[0])} + require("preact-render-to-string")(require("app-entry-point")) + ${JSON.stringify(parts[1])}`; + callback(null, html); + */ +}; \ No newline at end of file diff --git a/config/prerender.js b/config/prerender.js index 14f7f83c..65fda441 100644 --- a/config/prerender.js +++ b/config/prerender.js @@ -5,16 +5,16 @@ let renderToString = require('preact-render-to-string'); let appPath = path.join(__dirname, '../src/index'); module.exports = function(options) { - options = options || {}; - let url = typeof options==='string' ? options : options.url; - global.history = {}; - global.location = { href: url, pathname: url }; + options = options || {}; + let url = typeof options==='string' ? options : options.url; + global.history = {}; + global.location = { href: url, pathname: url }; - // let app = require('app-entry-point'); - let app = require(appPath); + // let app = require('app-entry-point'); + let app = require(appPath); - let html = renderToString(preact.h(app, { url })); - console.log(html); + let html = renderToString(preact.h(app, { url })); + console.log(html); - return html; + return html; }; diff --git a/config/watch-timestamps-plugin.js b/config/watch-timestamps-plugin.js index 6db23a03..942ddb85 100644 --- a/config/watch-timestamps-plugin.js +++ b/config/watch-timestamps-plugin.js @@ -8,23 +8,23 @@ const fs = require('fs'); * https://github.com/Jimdo/typings-for-css-modules-loader/issues/48#issuecomment-347036461 */ module.exports = class WatchTimestampsPlugin { - constructor(patterns) { - this.patterns = patterns; - } + constructor(patterns) { + this.patterns = patterns; + } - apply(compiler) { - compiler.plugin('watch-run', (watch, callback) => { - const patterns = this.patterns; - const timestamps = watch.fileTimestamps; + apply(compiler) { + compiler.plugin('watch-run', (watch, callback) => { + const patterns = this.patterns; + const timestamps = watch.fileTimestamps; - for (const filepath of timestamps) { - if (patterns.some(pat => pat instanceof RegExp ? pat.test(filepath) : filepath.indexOf(pat) === 0)) { - let time = fs.statSync(filepath).mtime; - if (timestamps instanceof Map) timestamps.set(filepath, time); - else timestamps[filepath] = time; - } - } - callback(); - }); - } + for (const filepath of timestamps) { + if (patterns.some(pat => pat instanceof RegExp ? pat.test(filepath) : filepath.indexOf(pat) === 0)) { + let time = fs.statSync(filepath).mtime; + if (timestamps instanceof Map) timestamps.set(filepath, time); + else timestamps[filepath] = time; + } + } + callback(); + }); + } }; diff --git a/src/assets/icon.png b/src/assets/icon.png index fb9b1fc4d4864d528523b564715e406b52615728..8371feaa69871ad9a3a454a72c3e4739774d2d2b 100644 GIT binary patch literal 27363 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 c|AdF29>b^rhX literal 92075 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

d)JY^Svkud=BC{L{?AaYt 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

aqj)CMoK`+d;{MXqOYUm8 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 z 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 .content { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - overflow: visible; - } + .header { + flex: 0 0 auto; + position: relative; + } + + .content { + flex: 1 1 auto; + contain: size layout style; + overflow: auto; + -webkit-overflow-scrolling: touch; + } } diff --git a/src/components/app/style.scss.d.ts b/src/components/app/style.scss.d.ts index 9a895562..44bf86f2 100644 --- a/src/components/app/style.scss.d.ts +++ b/src/components/app/style.scss.d.ts @@ -1,2 +1,3 @@ export const app: string; +export const header: string; export const content: string; diff --git a/src/components/drawer/style.scss b/src/components/drawer/style.scss index e5751318..41acac3e 100644 --- a/src/components/drawer/style.scss +++ b/src/components/drawer/style.scss @@ -1,29 +1,29 @@ @import '~style/helpers.scss'; :global { - // @import '~preact-material-components/Drawer/style.css'; - @import '~preact-material-components/List/mdc-list.scss'; + // @import '~preact-material-components/Drawer/style.css'; + @import '~preact-material-components/List/mdc-list.scss'; } .drawer { - :global(.mdc-list-item__start-detail) { - margin-right: 16px; - } + :global(.mdc-list-item__start-detail) { + margin-right: 16px; + } } .logo { - width: 50%; + width: 50%; } .category img { - opacity: .6; + opacity: .6; } .bottom { - position: absolute; - bottom: 0; - bottom: constant(safe-area-inset-bottom); - bottom: env(safe-area-inset-bottom); - left: 0; - width: 100%; + position: absolute; + bottom: 0; + bottom: constant(safe-area-inset-bottom); + bottom: env(safe-area-inset-bottom); + left: 0; + width: 100%; } diff --git a/src/components/fab/style.scss b/src/components/fab/style.scss index 765f50b2..69e67345 100644 --- a/src/components/fab/style.scss +++ b/src/components/fab/style.scss @@ -1,18 +1,18 @@ @import '~style/helpers.scss'; :global { - @import '~preact-material-components/Fab/mdc-fab.scss'; + @import '~preact-material-components/Fab/mdc-fab.scss'; } .fab { - position: fixed; - right: 14px; - bottom: 14px; - z-index: 4; - - .progress { - width: 24px; - height: 24px; - color: white; - --mdc-theme-primary: #fff; - } + position: fixed; + right: 14px; + bottom: 14px; + z-index: 4; + + .progress { + width: 24px; + height: 24px; + color: white; + --mdc-theme-primary: #fff; + } } diff --git a/src/components/header/style.scss b/src/components/header/style.scss index 8c22f295..61bee8ce 100644 --- a/src/components/header/style.scss +++ b/src/components/header/style.scss @@ -1,51 +1,52 @@ @import '~style/helpers.scss'; :global { - @import '~preact-material-components/Toolbar/mdc-toolbar.scss'; + @import '~preact-material-components/Toolbar/mdc-toolbar.scss'; } .toolbar { - height: $toolbar-height; + // height: $toolbar-height; - &.minimal { - height: $toolbar-height / 2; - } + &.minimal { + display: none; + // height: $toolbar-height / 2; + } - // > * { - // min-height: 0; - // } + // > * { + // min-height: 0; + // } } .fileInput { - position: absolute; - left: 0; - top: -999px; + position: absolute; + left: 0; + top: -999px; } .fab { - position: fixed; - display: block; - right: 14px; - bottom: 14px; - // z-index: 999; - // transform: translateZ(0); + position: fixed; + display: block; + right: 14px; + bottom: 14px; + // z-index: 999; + // transform: translateZ(0); } .logo { - height: 1em; + height: 1em; } - + .menu { - position: absolute; - top: $toolbar-height; - right: 5px; + position: absolute; + top: $toolbar-height; + right: 5px; - .menuItem { - margin-right: 16px; - } + .menuItem { + margin-right: 16px; + } } .title { - padding: 3px 0 0; - font-weight: 300; - font-size: 140%; + padding: 3px 0 0; + font-weight: 300; + font-size: 140%; } \ No newline at end of file diff --git a/src/components/home/style.scss b/src/components/home/style.scss index ee19608e..09d9fa5b 100644 --- a/src/components/home/style.scss +++ b/src/components/home/style.scss @@ -1,20 +1,20 @@ @import '~style/helpers.scss'; // :global { -// @import '~preact-material-components/Button/mdc-button.scss'; -// // @import '~preact-material-components/Switch/mdc-switch.scss'; +// @import '~preact-material-components/Button/mdc-button.scss'; +// // @import '~preact-material-components/Switch/mdc-switch.scss'; // } .home { - padding: 20px; - opacity: 0; + padding: 20px; + opacity: 0; } .active { - animation: fadeIn 2s forwards ease 1; + animation: fadeIn 2s forwards ease 1; } @keyframes fadeIn { - from { opacity: 0; } - to { opacity: 1; } + from { opacity: 0; } + to { opacity: 1; } } \ No newline at end of file diff --git a/src/index.html b/src/index.html index 8f003453..6fecc701 100644 --- a/src/index.html +++ b/src/index.html @@ -6,23 +6,11 @@ + - - <%= - /*require('../config/prerender')()*/ - htmlWebpackPlugin.options.prerender() - %> +

+ \ No newline at end of file diff --git a/src/lib/fix-pmc.js b/src/lib/fix-pmc.js index 99eaf243..6dd10509 100644 --- a/src/lib/fix-pmc.js +++ b/src/lib/fix-pmc.js @@ -1,26 +1,26 @@ import { options } from 'preact'; const classNameDescriptor = { - enumerable: false, - configurable: true, - get() { - return this.class; - }, - set(value) { - this.class = value; - } + enumerable: false, + configurable: true, + get() { + return this.class; + }, + set(value) { + this.class = value; + } }; let old = options.vnode; options.vnode = vnode => { - let a = vnode.attributes; - if (a!=null) { - if ('className' in a) { - a.class = a.className; - } - if ('class' in a) { - Object.defineProperty(a, 'className', classNameDescriptor); - } - } - if (old != null) old(vnode); -}; \ No newline at end of file + let a = vnode.attributes; + if (a != null) { + if ('className' in a) { + a.class = a.className; + } + if ('class' in a) { + Object.defineProperty(a, 'className', classNameDescriptor); + } + } + if (old != null) old(vnode); +}; diff --git a/src/style/index.scss b/src/style/index.scss index 8143c1f9..2795b423 100644 --- a/src/style/index.scss +++ b/src/style/index.scss @@ -1,26 +1,27 @@ // @import './material-icons.scss'; // @import 'material-components-web/material-components-web'; @import './reset.scss'; +@import url('https://fonts.googleapis.com/icon?family=Material+Icons'); html, body { - height: 100%; - width: 100%; - padding: 0; - margin: 0; - overflow: hidden; - overscroll-behavior: none; + height: 100%; + width: 100%; + padding: 0; + margin: 0; + overflow: hidden; + overscroll-behavior: none; } html { - background: #FAFAFA; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: 400; - color: #444; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; + background: #FAFAFA; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 400; + color: #444; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } .mdc-theme--dark { - background-color: #333; - color: #fff; + background-color: #333; + color: #fff; } \ No newline at end of file diff --git a/src/style/material-icons.scss b/src/style/material-icons.scss index d0bb3be2..1ad3e638 100644 --- a/src/style/material-icons.scss +++ b/src/style/material-icons.scss @@ -1,28 +1,28 @@ @font-face { - font-family: 'Material Icons'; - font-style: normal; - font-weight: 400; - src: local('Material Icons'), - local('MaterialIcons-Regular'), - url(https://example.com/MaterialIcons-Regular.woff2) format('woff2'), - url(https://example.com/MaterialIcons-Regular.woff) format('woff'), - url(https://example.com/MaterialIcons-Regular.ttf) format('truetype'); + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + src: local('Material Icons'), + local('MaterialIcons-Regular'), + url(https://example.com/MaterialIcons-Regular.woff2) format('woff2'), + url(https://example.com/MaterialIcons-Regular.woff) format('woff'), + url(https://example.com/MaterialIcons-Regular.ttf) format('truetype'); } .material-icons { - font-family: 'Material Icons'; - font-weight: normal; - font-style: normal; - font-size: 24px; - display: inline-block; - line-height: 1; - text-transform: none; - letter-spacing: normal; - word-wrap: normal; - white-space: nowrap; - direction: ltr; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - -moz-osx-font-smoothing: grayscale; - font-feature-settings: 'liga'; + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + display: inline-block; + line-height: 1; + text-transform: none; + letter-spacing: normal; + word-wrap: normal; + white-space: nowrap; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: 'liga'; } \ No newline at end of file diff --git a/src/style/reset.scss b/src/style/reset.scss index 4e6eb882..c863fb75 100644 --- a/src/style/reset.scss +++ b/src/style/reset.scss @@ -1,12 +1,12 @@ button, a, img, input, select, textarea { - -webkit-tap-highlight-color: rgba(0,0,0,0); + -webkit-tap-highlight-color: rgba(0,0,0,0); } a, button, img, [inert], .inert { - user-select: none; - -webkit-user-select: none; - user-drag: none; - -webkit-user-drag: none; - touch-callout: none; - -webkit-touch-callout: none; + user-select: none; + -webkit-user-select: none; + user-drag: none; + -webkit-user-drag: none; + touch-callout: none; + -webkit-touch-callout: none; } diff --git a/webpack.config.js b/webpack.config.js index 4382f78d..6fc65dbb 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -10,114 +10,114 @@ const HtmlWebpackPlugin = require('html-webpack-plugin'); const PreloadWebpackPlugin = require('preload-webpack-plugin'); const ReplacePlugin = require('webpack-plugin-replace'); const CopyPlugin = require('copy-webpack-plugin'); +const WorkboxPlugin = require('workbox-webpack-plugin'); const WatchTimestampsPlugin = require('./config/watch-timestamps-plugin'); const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; function readJson(filename) { - return JSON.parse(fs.readFileSync(filename)); + return JSON.parse(fs.readFileSync(filename)); } module.exports = function(_, env) { - const isProd = env.mode === 'production'; - const nodeModules = path.join(__dirname, 'node_modules'); - const componentStyleDirs = [ - path.join(__dirname, 'src/components'), - path.join(__dirname, 'src/routes') - ]; + const isProd = env.mode === 'production'; + const nodeModules = path.join(__dirname, 'node_modules'); + const componentStyleDirs = [ + path.join(__dirname, 'src/components'), + path.join(__dirname, 'src/routes') + ]; - return { - mode: isProd ? 'production' : 'development', - entry: path.join(__dirname, 'config/client-boot.js'), - output: { - filename: isProd ? '[name].[chunkhash:5].js' : '[name].js', - chunkFilename: '[name].chunk.[chunkhash:5].js', - path: path.join(__dirname, 'build'), - publicPath: '/' - }, - resolve: { - extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss', '.css'], - alias: { - 'app-entry-point': path.join(__dirname, 'src/index'), - style: path.join(__dirname, 'src/style') - } - }, - resolveLoader: { - alias: { - // async-component-loader returns a wrapper component that waits for the import to load before rendering: - async: path.join(__dirname, 'config/async-component-loader') - } - }, - module: { - rules: [ - { - test: /\.tsx?$/, - // Ensure typescript is compiled prior to Babel running: - enforce: 'pre', - loader: 'ts-loader', - // Don't transpile anything in node_modules: - exclude: nodeModules, + return { + mode: isProd ? 'production' : 'development', + entry: './src/index', + output: { + filename: isProd ? '[name].[chunkhash:5].js' : '[name].js', + chunkFilename: '[name].chunk.[chunkhash:5].js', + path: path.join(__dirname, 'build'), + publicPath: '/' + }, + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss', '.css'], + alias: { + style: path.join(__dirname, 'src/style') + } + }, + resolveLoader: { + alias: { + // async-component-loader returns a wrapper component that waits for the import to load before rendering: + async: path.join(__dirname, 'config/async-component-loader') + } + }, + module: { + rules: [ + { + test: /\.tsx?$/, + // Ensure typescript is compiled prior to Babel running: + enforce: 'pre', + loader: 'ts-loader', + // Don't transpile anything in node_modules: + exclude: nodeModules, options: { // Offload type checking to ForkTsCheckerWebpackPlugin for better performance: transpileOnly: true } - }, - { - test: /\.(tsx?|jsx?)$/, - loader: 'babel-loader', - // Don't respect any Babel RC files found on the filesystem: - options: Object.assign(readJson('.babelrc'), { babelrc: false }) - }, - { - test: /\.(scss|sass)$/, - loader: 'sass-loader', - // SCSS gets preprocessed, then treated like any other CSS: - enforce: 'pre', - options: { - sourceMap: true, - includePaths: [nodeModules] - } - }, - { - test: /\.(scss|sass|css)$/, - // Only enable CSS Modules within `src/{components,routes}/*` - include: componentStyleDirs, - use: [ - // In production, CSS is extracted to files on disk. In development, it's inlined into JS: - isProd ? MiniCssExtractPlugin.loader : 'style-loader', - { - // This is a fork of css-loader that auto-generates .d.ts files for CSS module imports. - // The result is a definition file with the exported String classname mappings. - loader: 'typings-for-css-modules-loader', - options: { - modules: true, - localIdentName: '[local]__[hash:base64:5]', - namedExport: true, - camelCase: true, - importLoaders: 1, - sourceMap: isProd, - sass: true - } - } - ] - }, - { - test: /\.(scss|sass|css)$/, - // Process non-modular CSS everywhere *except* `src/{components,routes}/*` - exclude: componentStyleDirs, - use: [ - isProd ? MiniCssExtractPlugin.loader : 'style-loader', - { - loader: 'css-loader', - options: { - importLoaders: 1, - sourceMap: isProd - } - } - ] - } - ] - }, - plugins: [ + }, + { + test: /\.(tsx?|jsx?)$/, + loader: 'babel-loader', + // Don't respect any Babel RC files found on the filesystem: + options: Object.assign(readJson('.babelrc'), { babelrc: false }) + }, + { + test: /\.(scss|sass)$/, + loader: 'sass-loader', + // SCSS gets preprocessed, then treated like any other CSS: + enforce: 'pre', + options: { + sourceMap: true, + includePaths: [nodeModules] + } + }, + { + test: /\.(scss|sass|css)$/, + // Only enable CSS Modules within `src/{components,routes}/*` + include: componentStyleDirs, + use: [ + // In production, CSS is extracted to files on disk. In development, it's inlined into JS: + isProd ? MiniCssExtractPlugin.loader : 'style-loader', + { + // This is a fork of css-loader that auto-generates .d.ts files for CSS module imports. + // The result is a definition file with the exported String classname mappings. + loader: 'typings-for-css-modules-loader', + options: { + modules: true, + localIdentName: '[local]__[hash:base64:5]', + namedExport: true, + camelCase: true, + importLoaders: 1, + sourceMap: isProd, + sass: true + } + } + ] + }, + { + test: /\.(scss|sass|css)$/, + // Process non-modular CSS everywhere *except* `src/{components,routes}/*` + exclude: componentStyleDirs, + use: [ + isProd ? MiniCssExtractPlugin.loader : 'style-loader', + { + loader: 'css-loader', + options: { + importLoaders: 1, + sourceMap: isProd + } + } + ] + } + ] + }, + plugins: [ // Runs tslint & type checking in a worker pool new ForkTsCheckerWebpackPlugin({ tslint: true, @@ -127,140 +127,140 @@ module.exports = function(_, env) { }), new ForkTsCheckerNotifierWebpackPlugin({ excludeWarnings: true }), - // Pretty progressbar showing build progress: - new ProgressBarPlugin({ - format: '\u001b[90m\u001b[44mBuild\u001b[49m\u001b[39m [:bar] \u001b[32m\u001b[1m:percent\u001b[22m\u001b[39m (:elapseds) \u001b[2m:msg\u001b[22m', - renderThrottle: 100, - summary: false, - clear: true - }), + // Pretty progressbar showing build progress: + new ProgressBarPlugin({ + format: '\u001b[90m\u001b[44mBuild\u001b[49m\u001b[39m [:bar] \u001b[32m\u001b[1m:percent\u001b[22m\u001b[39m (:elapseds) \u001b[2m:msg\u001b[22m', + renderThrottle: 100, + summary: false, + clear: true + }), - // Remove old files before outputting a production build: - isProd && new CleanWebpackPlugin([ - 'assets', - '**/*.{css,js,json,html}' - ], { - root: path.join(__dirname, 'build'), - beforeEmit: true - }), + // Remove old files before outputting a production build: + isProd && new CleanWebpackPlugin([ + 'assets', + '**/*.{css,js,json,html}' + ], { + root: path.join(__dirname, 'build'), + beforeEmit: true + }), - // Automatically split code into async chunks. - // See: https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366 - isProd && new webpack.optimize.SplitChunksPlugin({}), + // Automatically split code into async chunks. + // See: https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366 + isProd && new webpack.optimize.SplitChunksPlugin({}), - // In production, extract all CSS to produce files on disk, even for - // lazy-loaded CSS chunks. CSS for async chunks is loaded on-demand. - // This is a modern Webpack 4 replacement for ExtractTextPlugin. - // See: https://github.com/webpack-contrib/mini-css-extract-plugin - // See also: https://twitter.com/wsokra/status/970253245733113856 - isProd && new MiniCssExtractPlugin({ - chunkFilename: '[name].chunk.[contenthash:5].css' - }), + // In production, extract all CSS to produce files on disk, even for + // lazy-loaded CSS chunks. CSS for async chunks is loaded on-demand. + // This is a modern Webpack 4 replacement for ExtractTextPlugin. + // See: https://github.com/webpack-contrib/mini-css-extract-plugin + // See also: https://twitter.com/wsokra/status/970253245733113856 + isProd && new MiniCssExtractPlugin({ + chunkFilename: '[name].chunk.[contenthash:5].css' + }), - // These plugins fix infinite loop in typings-for-css-modules-loader. - // See: https://github.com/Jimdo/typings-for-css-modules-loader/issues/35 - new webpack.WatchIgnorePlugin([ - /(c|sc|sa)ss\.d\.ts$/ - ]), - new WatchTimestampsPlugin([ - /(c|sc|sa)ss\.d\.ts$/ - ]), + // These plugins fix infinite loop in typings-for-css-modules-loader. + // See: https://github.com/Jimdo/typings-for-css-modules-loader/issues/35 + new webpack.WatchIgnorePlugin([ + /(c|sc|sa)ss\.d\.ts$/ + ]), + new WatchTimestampsPlugin([ + /(c|sc|sa)ss\.d\.ts$/ + ]), - // For now we're not doing SSR. - new HtmlWebpackPlugin({ - filename: path.join(__dirname, 'build/index.html'), - template: '!!ejs-loader!src/index.html', - // template: '!!'+path.join(__dirname, 'config/prerender-loader')+'!src/index.html', - minify: isProd && { - collapseWhitespace: true, - removeScriptTypeAttributes: true, - removeRedundantAttributes: true, - removeStyleLinkTypeAttributes: true, - removeComments: true - }, - manifest: readJson('./src/manifest.json'), - inject: true, - compile: true - }), + // For now we're not doing SSR. + new HtmlWebpackPlugin({ + filename: path.join(__dirname, 'build/index.html'), + template: '!!ejs-loader!src/index.html', + // template: '!!'+path.join(__dirname, 'config/prerender-loader')+'!src/index.html', + minify: isProd && { + collapseWhitespace: true, + removeScriptTypeAttributes: true, + removeRedundantAttributes: true, + removeStyleLinkTypeAttributes: true, + removeComments: true + }, + manifest: readJson('./src/manifest.json'), + inject: true, + compile: true + }), - // Inject for resources - isProd && new PreloadWebpackPlugin(), + // Inject for resources + isProd && new PreloadWebpackPlugin(), - // Inline constants during build, so they can be folded by UglifyJS. - new webpack.DefinePlugin({ - // We set node.process=false later in this config. - // Here we make sure if (process && process.foo) still works: - process: '{}' - }), + // Inline constants during build, so they can be folded by UglifyJS. + new webpack.DefinePlugin({ + // We set node.process=false later in this config. + // Here we make sure if (process && process.foo) still works: + process: '{}' + }), - // Babel embeds helpful error messages into transpiled classes that we don't need in production. - // Here we replace the constructor and message with a static throw, leaving the message to be DCE'd. - // This is useful since it shows the message in SourceMapped code when debugging. - isProd && new ReplacePlugin({ - include: /babel-helper$/, - patterns: [{ - regex: /throw\s+(?:new\s+)?((?:Type|Reference)?Error)\s*\(/g, - value: (s, type) => `throw 'babel error'; (` - }] - }), + // Babel embeds helpful error messages into transpiled classes that we don't need in production. + // Here we replace the constructor and message with a static throw, leaving the message to be DCE'd. + // This is useful since it shows the message in SourceMapped code when debugging. + isProd && new ReplacePlugin({ + include: /babel-helper$/, + patterns: [{ + regex: /throw\s+(?:new\s+)?((?:Type|Reference)?Error)\s*\(/g, + value: (s, type) => `throw 'babel error'; (` + }] + }), - // Copying files via Webpack allows them to be served dynamically by `webpack serve` - new CopyPlugin([ - { from: 'src/manifest.json', to: 'manifest.json' }, - { from: 'src/assets', to: 'assets' } - ]), + // Copying files via Webpack allows them to be served dynamically by `webpack serve` + new CopyPlugin([ + { from: 'src/manifest.json', to: 'manifest.json' }, + { from: 'src/assets', to: 'assets' } + ]), - // For production builds, output module size analysis to build/report.html - isProd && new BundleAnalyzerPlugin({ - analyzerMode: 'static', - defaultSizes: 'gzip', - openAnalyzer: false - }), + // For production builds, output module size analysis to build/report.html + isProd && new BundleAnalyzerPlugin({ + analyzerMode: 'static', + defaultSizes: 'gzip', + openAnalyzer: false + }), - // Generate a ServiceWorker using Workbox. - isProd && new WorkboxPlugin.GenerateSW({ - swDest: 'sw.js', - clientsClaim: true, - skipWaiting: true, - // allow for offline client-side routing: - navigateFallback: '/', - navigateFallbackBlacklist: [/\.[a-z0-9]+$/i] - }) - ].filter(Boolean), // Filter out any falsey plugin array entries. + // Generate a ServiceWorker using Workbox. + isProd && new WorkboxPlugin.GenerateSW({ + swDest: 'sw.js', + clientsClaim: true, + skipWaiting: true, + // allow for offline client-side routing: + navigateFallback: '/', + navigateFallbackBlacklist: [/\.[a-z0-9]+$/i] + }) + ].filter(Boolean), // Filter out any falsey plugin array entries. - // Turn off various NodeJS environment polyfills Webpack adds to bundles. - // They're supposed to be added only when used, but the heuristic is loose - // (eg: existence of a variable called setImmedaite in any scope) - node: { - console: false, - // Keep global, it's just an alias of window and used by many third party modules: - global: true, - // Turn off process to avoid bundling a nextTick implementation: - process: false, - // Inline __filename and __dirname values: - __filename: 'mock', - __dirname: 'mock', - // Never embed a portable implementation of Node's Buffer module: - Buffer: false, - // Never embed a setImmediate implementation: - setImmediate: false - }, + // Turn off various NodeJS environment polyfills Webpack adds to bundles. + // They're supposed to be added only when used, but the heuristic is loose + // (eg: existence of a variable called setImmedaite in any scope) + node: { + console: false, + // Keep global, it's just an alias of window and used by many third party modules: + global: true, + // Turn off process to avoid bundling a nextTick implementation: + process: false, + // Inline __filename and __dirname values: + __filename: 'mock', + __dirname: 'mock', + // Never embed a portable implementation of Node's Buffer module: + Buffer: false, + // Never embed a setImmediate implementation: + setImmediate: false + }, - devServer: { - // Any unmatched request paths will serve static files from src/*: - contentBase: path.join(__dirname, 'src'), - inline: true, - hot: true, - // Request paths not ending in a file extension serve index.html: - historyApiFallback: true, - // Don't output server address info to console on startup: - noInfo: true, - // Suppress forwarding of Webpack logs to the browser console: - clientLogLevel: 'none', - // Supress the extensive stats normally printed after a dev build (since sizes are mostly useless): - stats: 'minimal', - // Don't embed an error overlay ("redbox") into the client bundle: - overlay: false - } - }; + devServer: { + // Any unmatched request paths will serve static files from src/*: + contentBase: path.join(__dirname, 'src'), + inline: true, + hot: true, + // Request paths not ending in a file extension serve index.html: + historyApiFallback: true, + // Don't output server address info to console on startup: + noInfo: true, + // Suppress forwarding of Webpack logs to the browser console: + clientLogLevel: 'none', + // Supress the extensive stats normally printed after a dev build (since sizes are mostly useless): + stats: 'minimal', + // Don't embed an error overlay ("redbox") into the client bundle: + overlay: false + } + }; };