From 0766c322f6a3143785e4660754fae57854a5a0c8 Mon Sep 17 00:00:00 2001 From: Yuta Hiroto Date: Tue, 23 Apr 2019 10:46:39 +0100 Subject: [PATCH] chore(examples): add universal-config example (#1810) --- examples/.eslintrc | 3 +++ examples/general/universal-config/README.md | 12 +++++++++ examples/general/universal-config/client.js | 25 +++++++++++++++++++ examples/general/universal-config/server.js | 3 +++ .../universal-config/webpack.config.js | 24 ++++++++++++++++++ 5 files changed, 67 insertions(+) create mode 100644 examples/general/universal-config/README.md create mode 100644 examples/general/universal-config/client.js create mode 100644 examples/general/universal-config/server.js create mode 100644 examples/general/universal-config/webpack.config.js diff --git a/examples/.eslintrc b/examples/.eslintrc index d5ba8f9d9c..2b4d898a3b 100644 --- a/examples/.eslintrc +++ b/examples/.eslintrc @@ -1,4 +1,7 @@ { + "env": { + "browser": true + }, "rules": { "no-console": "off" } diff --git a/examples/general/universal-config/README.md b/examples/general/universal-config/README.md new file mode 100644 index 0000000000..92667f08b0 --- /dev/null +++ b/examples/general/universal-config/README.md @@ -0,0 +1,12 @@ +# General: Webpack Universal Config + +This example demonstrates using a `webpack` config containing a `target: web` config and `target:node` config. + +```console +npm run webpack-dev-server -- --open +``` + +## What Should Happen + +1. The script should open `http://localhost:8080/` in your default browser. +2. You should see the text on the page itself change to read `[client.js, server.js]: Success!`. diff --git a/examples/general/universal-config/client.js b/examples/general/universal-config/client.js new file mode 100644 index 0000000000..9aaa31e805 --- /dev/null +++ b/examples/general/universal-config/client.js @@ -0,0 +1,25 @@ +'use strict'; + +const target = document.querySelector('#target'); + +if (!window.fetch) { + target.classList.add('fail'); + target.innerHTML = 'fetch is not supported'; +} else { + fetch('/server.js') + .then((res) => { + if (res.status === 404) throw new Error('[server.js]: Not Found'); + return res; + }) + .then((res) => res.text()) + .then((res) => { + if (res.includes("console.log('webpack-dev-server/server');")) { + target.classList.add('pass'); + target.innerHTML = '[client.js, server.js]: Success!'; + } + }) + .catch((e) => { + target.classList.add('fail'); + target.innerHTML = e.message; + }); +} diff --git a/examples/general/universal-config/server.js b/examples/general/universal-config/server.js new file mode 100644 index 0000000000..3698fe5edd --- /dev/null +++ b/examples/general/universal-config/server.js @@ -0,0 +1,3 @@ +'use strict'; + +console.log('webpack-dev-server/server'); diff --git a/examples/general/universal-config/webpack.config.js b/examples/general/universal-config/webpack.config.js new file mode 100644 index 0000000000..ebd58d44ef --- /dev/null +++ b/examples/general/universal-config/webpack.config.js @@ -0,0 +1,24 @@ +'use strict'; + +const { setup } = require('../../util'); + +module.exports = [ + setup({ + mode: 'development', + entry: './client.js', + output: { + filename: 'client.js', + }, + context: __dirname, + }), + { + mode: 'development', + target: 'node', + entry: './server.js', + output: { + filename: 'server.js', + }, + context: __dirname, + node: false, + }, +];