chore(cli-serve): build and serve dist (#22)

This commit is contained in:
Miralem Drek
2019-04-28 21:39:03 +02:00
committed by GitHub
parent fde00f91d3
commit 0bde0bd89f
32 changed files with 384 additions and 236 deletions

View File

@@ -58,7 +58,7 @@
"yargs": "^12.0.5"
},
"workspaces": [
"generated/*",
"generated",
"packages/*"
]
}

View File

@@ -0,0 +1,7 @@
export default {
component: {
mounted() {
console.log('mounted');
},
},
};

View File

@@ -4,7 +4,7 @@ const chalk = require('chalk');
const portfinder = require('portfinder');
const { watch } = require('@nebula.js/cli-build');
const webpack = require('./webpack.conf');
const webpackServe = require('./webpack.serve.js');
const {
startEngine,
@@ -17,8 +17,11 @@ module.exports = async (argv) => {
}
const port = argv.port || await portfinder.getPortPromise();
const host = argv.host || 'localhost';
const enigmaConfig = argv.enigma || {};
const publicDir = path.resolve(__dirname, '../public');
const enigmaConfig = {
port: 9076,
host: 'localhost',
...argv.enigma,
};
const context = process.cwd();
let snPath;
let snName;
@@ -46,13 +49,13 @@ module.exports = async (argv) => {
return;
}
const server = await webpack({
const server = await webpackServe({
host,
port,
publicDir,
enigmaConfig,
snName,
snPath,
dev: process.env.MONO === 'true',
});
const close = () => {

3
packages/serve/lib/sn.js Normal file
View File

@@ -0,0 +1,3 @@
import def from 'snDefinition'; // eslint-disable-line
window.snDefinition = def;

View File

@@ -0,0 +1,91 @@
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const cfg = ({
srcDir,
distDir,
snPath,
dev = false,
}) => {
const config = {
mode: dev ? 'development' : 'production',
entry: {
eRender: [
path.resolve(srcDir, 'eRender'),
],
eDev: [
path.resolve(srcDir, 'eDev'),
],
eHub: [
path.resolve(srcDir, 'eHub'),
],
},
devtool: 'source-map',
output: {
path: distDir,
filename: '[name].js',
},
resolve: {
alias: {
snDefinition: snPath,
},
extensions: ['.js', '.jsx'],
},
externals: dev ? {} : 'snDefinition',
module: {
rules: [{
test: /\.jsx?$/,
sideEffects: false,
include: [
srcDir,
/react-leonardo-ui/,
],
use: {
loader: 'babel-loader',
options: {
presets: [
['@babel/preset-env', {
modules: false,
targets: {
browsers: ['last 2 chrome versions'],
},
}],
'@babel/preset-react',
],
},
},
}],
},
plugins: [
new HtmlWebpackPlugin({
template: path.resolve(srcDir, 'eRender.html'),
filename: 'eRender.html',
chunks: ['eRender'],
}),
new HtmlWebpackPlugin({
template: path.resolve(srcDir, 'eDev.html'),
filename: 'eDev.html',
chunks: ['eDev'],
}),
new HtmlWebpackPlugin({
template: path.resolve(srcDir, 'eHub.html'),
filename: 'eHub.html',
chunks: ['eHub'],
}),
// new webpack.HotModuleReplacementPlugin(),
],
};
return config;
};
if (process.stdin.isTTY) {
module.exports = cfg;
} else {
module.exports = cfg({
srcDir: path.resolve(__dirname, '../web'),
distDir: path.resolve(__dirname, '../dist'),
snPath: path.resolve(__dirname, 'placeholder'),
dev: false,
});
}

View File

@@ -1,167 +0,0 @@
const path = require('path');
const chalk = require('chalk');
const webpack = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const nm = require.resolve('leonardo-ui');
const nmPath = nm.substring(0, nm.lastIndexOf('node_modules') + 12);
module.exports = async ({
host,
port,
publicDir,
enigmaConfig,
snName,
snPath,
}) => {
const config = {
mode: 'development',
entry: {
render: [
path.resolve(publicDir, 'render'),
],
dev: [
path.resolve(publicDir, 'dev'),
],
hub: [
path.resolve(publicDir, 'hub'),
],
},
devtool: 'source-map',
output: {
path: path.resolve(publicDir, 'dist'),
filename: '[name].js',
},
resolve: {
alias: {
snDefinition: snPath,
},
extensions: ['.js', '.jsx'],
},
module: {
rules: [{
test: /\.jsx?$/,
sideEffects: false,
include: [
publicDir,
/react-leonardo-ui/,
],
use: {
loader: 'babel-loader',
options: {
presets: [
['@babel/preset-env', {
modules: false,
targets: {
browsers: ['last 2 chrome versions'],
},
}],
'@babel/preset-react',
],
},
},
}],
},
plugins: [
new webpack.DefinePlugin({
SN_NAME: JSON.stringify(snName),
ENIGMA_HOST: JSON.stringify(enigmaConfig.host || ''),
ENIGMA_PORT: JSON.stringify(enigmaConfig.port || 9076),
}),
new HtmlWebpackPlugin({
template: path.resolve(publicDir, 'render.html'),
filename: 'render.html',
chunks: ['render'],
}),
new HtmlWebpackPlugin({
template: path.resolve(publicDir, 'dev.html'),
filename: 'dev.html',
chunks: ['dev'],
}),
new HtmlWebpackPlugin({
template: path.resolve(publicDir, 'hub.html'),
filename: 'hub.html',
chunks: ['hub'],
}),
new webpack.HotModuleReplacementPlugin(),
],
};
const options = {
clientLogLevel: 'none',
hot: true,
host,
port,
overlay: {
warnings: false,
errors: true,
},
quiet: true,
open: true,
contentBase: [
path.resolve(publicDir, 'dist'),
nmPath,
],
historyApiFallback: {
index: '/hub.html',
},
proxy: [{
context: '/render',
target: `http://${host}:${port}/render.html`,
ignorePath: true,
}, {
context: '/dev',
target: `http://${host}:${port}/dev.html`,
ignorePath: true,
}],
};
console.log('Starting development server...');
WebpackDevServer.addDevServerEntrypoints(config, options);
const compiler = webpack(config);
const server = new WebpackDevServer(compiler, options);
const close = () => {
server.close(() => {
process.exit(0);
});
};
['SIGINT', 'SIGTERM'].forEach((signal) => {
process.on(signal, close);
});
let initiated = false;
return new Promise((resolve, reject) => { // eslint-disable-line consistent-return
compiler.hooks.done.tap('nebula serve', (stats) => {
if (!initiated) {
initiated = true;
const url = `http://${host}:${port}`;
console.log(`...running at ${chalk.green(url)}`);
resolve({
context: '',
url,
close,
});
if (stats.hasErrors()) {
stats.compilation.errors.forEach((e) => {
console.log(chalk.red(e));
});
process.exit(1);
}
}
});
server.listen(port, host, (err) => {
if (err) {
reject(err);
}
});
});
};

View File

@@ -0,0 +1,39 @@
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const cfg = ({
srcDir = path.resolve(__dirname, '../dist'),
snPath = path.resolve(__dirname, 'placeholder'),
}) => {
const config = {
mode: 'development',
entry: path.resolve(__dirname, './sn.js'),
devtool: 'source-map',
output: {
path: path.resolve(srcDir, 'temp'),
filename: '[name].js',
},
resolve: {
alias: {
snDefinition: snPath,
},
},
plugins: [
new HtmlWebpackPlugin({
template: path.resolve(srcDir, 'eRender.html'),
filename: 'eRender.html',
inject: 'head',
}),
new HtmlWebpackPlugin({
template: path.resolve(srcDir, 'eDev.html'),
filename: 'eDev.html',
inject: 'head',
}),
// new webpack.HotModuleReplacementPlugin(),
],
};
return config;
};
module.exports = cfg;

View File

@@ -0,0 +1,122 @@
/* eslint global-require: 0 */
const path = require('path');
const chalk = require('chalk');
const webpack = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const nm = require.resolve('leonardo-ui');
const nmPath = nm.substring(0, nm.lastIndexOf('node_modules') + 12);
module.exports = async ({
host,
port,
enigmaConfig,
snPath,
dev = false,
}) => {
let config;
let contentBase;
if (dev) {
const webpackConfig = require('./webpack.build.js');
const srcDir = path.resolve(__dirname, '../web');
const distDir = path.resolve(srcDir, '../dist');
contentBase = distDir;
config = webpackConfig({
srcDir,
distDir,
dev: true,
snPath,
});
} else {
const webpackConfig = require('./webpack.prod.js');
const srcDir = path.resolve(__dirname, '../dist');
contentBase = srcDir;
config = webpackConfig({
srcDir,
snPath,
});
}
const options = {
clientLogLevel: 'none',
hot: true,
host,
port,
overlay: {
warnings: false,
errors: true,
},
quiet: true,
open: true,
contentBase: [
contentBase,
nmPath,
],
historyApiFallback: {
index: '/eHub.html',
},
proxy: [{
context: '/render',
target: `http://${host}:${port}/eRender.html`,
ignorePath: true,
}, {
context: '/dev',
target: `http://${host}:${port}/eDev.html`,
ignorePath: true,
}, {
context: '/engine',
ignorePath: true,
ws: true,
target: `ws://${enigmaConfig.host || 'localhost'}:${enigmaConfig.port}`,
}],
};
console.log('Starting development server...');
WebpackDevServer.addDevServerEntrypoints(config, options);
const compiler = webpack(config);
const server = new WebpackDevServer(compiler, options);
const close = () => {
server.close(() => {
process.exit(0);
});
};
['SIGINT', 'SIGTERM'].forEach((signal) => {
process.on(signal, close);
});
let initiated = false;
return new Promise((resolve, reject) => { // eslint-disable-line consistent-return
compiler.hooks.done.tap('nebula serve', (stats) => {
if (!initiated) {
initiated = true;
const url = `http://${host}:${port}`;
console.log(`...running at ${chalk.green(url)}`);
resolve({
context: '',
url,
close,
});
if (stats.hasErrors()) {
stats.compilation.errors.forEach((e) => {
console.log(chalk.red(e));
});
process.exit(1);
}
}
});
server.listen(port, host, (err) => {
if (err) {
reject(err);
}
});
});
};

View File

@@ -14,36 +14,33 @@
"data",
"docker-compose.yml",
"lib",
"public"
"dist"
],
"scripts": {
"lint": "eslint public"
"build": "webpack --config ./lib/webpack.build.js",
"lint": "eslint web"
},
"dependencies": {
"@babel/core": "^7.4.3",
"@babel/preset-env": "^7.4.3",
"@babel/preset-react": "^7.0.0",
"@nebula.js/cli-build": "0.1.0-alpha.8",
"@nebula.js/nucleus": "0.1.0-alpha.8",
"babel-loader": "^8.0.5",
"chalk": "^2.4.2",
"enigma.js": "^2.4.0",
"execa": "^1.0.0",
"html-webpack-plugin": "^3.2.0",
"leonardo-ui": "1.6.0",
"picasso-plugin-q": "^0.23.2",
"picasso.js": "^0.23.2",
"portfinder": "^1.0.20",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-leonardo-ui": "^0.15.0",
"rollup": "^1.1.2",
"rollup-plugin-commonjs": "^9.2.0",
"rollup-plugin-json": "^3.1.0",
"rollup-plugin-node-resolve": "^4.0.0",
"rollup-plugin-serve": "^1.0.1",
"webpack": "^4.29.3",
"webpack-dev-server": "^3.1.14",
"yargs": "^12.0.5"
},
"devDependencies": {
"@babel/core": "^7.4.3",
"@babel/preset-env": "^7.4.3",
"@babel/preset-react": "^7.0.0",
"@nebula.js/nucleus": "0.1.0-alpha.8",
"babel-loader": "^8.0.5",
"enigma.js": "^2.4.0",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-leonardo-ui": "^0.15.0",
"webpack-cli": "^3.3.1"
}
}

View File

@@ -1,5 +1,3 @@
/* global SN_NAME */
import React, {
useEffect,
useState,
@@ -35,12 +33,12 @@ export default function App({
const nebbie = nucleus(app)
.load((type, config) => config.Promise.resolve(snDefinition));
nebbie.types.supernova(SN_NAME).then(setSupernova);
nebbie.types.supernova('__undefined__').then(setSupernova);
nebbie.selections().mount(sel.current);
const create = () => {
nebbie.create({
type: SN_NAME || '__undefined__',
type: '__undefined__',
}, {}).then((v) => {
v.context({
permissions: ['passive', 'interact', 'select', 'fetch'],

View File

@@ -1,5 +1,3 @@
/* global ENIGMA_HOST, ENIGMA_PORT */
import enigma from 'enigma.js';
import qixSchema from 'enigma.js/schemas/3.2.json';
import SenseUtilities from 'enigma.js/sense-utilities';
@@ -25,8 +23,9 @@ const params = (() => {
})();
const defaultConfig = {
host: ENIGMA_HOST || window.location.hostname || 'localhost',
port: ENIGMA_PORT,
host: window.location.hostname || 'localhost',
port: window.location.port,
prefix: 'engine',
secure: false,
};

View File

@@ -1,5 +1,3 @@
/* global SN_NAME */
import nucleus from '@nebula.js/nucleus';
import snDefinition from 'snDefinition'; // eslint-disable-line
@@ -24,7 +22,7 @@ openApp(params.app).then((app) => {
const create = () => {
obj = nebbie.create({
type: SN_NAME,
type: '__undefined__',
fields: params.cols || [],
}, {
element: document.querySelector('#chart-container'),
@@ -49,11 +47,13 @@ openApp(params.app).then((app) => {
render();
module.hot.accept('snDefinition', () => {
nebbie.types.clearFromCache(objType);
obj.then((viz) => {
viz.close();
render();
if (module.hot) {
module.hot.accept('snDefinition', () => {
nebbie.types.clearFromCache(objType);
obj.then((viz) => {
viz.close();
render();
});
});
});
}
});

View File

@@ -4,13 +4,14 @@ export default function Grid({
children,
vertical,
noSpacing,
style,
}) {
const classNames = [
'nebula-grid',
vertical ? 'vertical' : 'horizontal',
noSpacing ? 'no-spacing' : '',
].join(' ');
const style = {};
// const style = {};
return (
<div className={classNames} style={style}>
{children}

109
yarn.lock
View File

@@ -4186,6 +4186,10 @@ detect-conflict@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/detect-conflict/-/detect-conflict-1.0.1.tgz#088657a66a961c05019db7c4230883b1c6b4176e"
detect-file@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
detect-indent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
@@ -4883,6 +4887,12 @@ expand-range@^1.8.1:
dependencies:
fill-range "^2.1.0"
expand-tilde@^2.0.0, expand-tilde@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
dependencies:
homedir-polyfill "^1.0.1"
express@^4.16.2:
version "4.16.4"
resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e"
@@ -5149,6 +5159,15 @@ find-versions@^2.0.0:
array-uniq "^1.0.0"
semver-regex "^1.0.0"
findup-sync@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc"
dependencies:
detect-file "^1.0.0"
is-glob "^3.1.0"
micromatch "^3.0.4"
resolve-dir "^1.0.1"
first-chunk-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70"
@@ -5558,6 +5577,24 @@ global-dirs@^0.1.0:
dependencies:
ini "^1.3.4"
global-modules@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
dependencies:
global-prefix "^1.0.1"
is-windows "^1.0.1"
resolve-dir "^1.0.0"
global-prefix@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
dependencies:
expand-tilde "^2.0.2"
homedir-polyfill "^1.0.1"
ini "^1.3.4"
is-windows "^1.0.1"
which "^1.2.14"
global-tunnel-ng@^2.5.3:
version "2.7.1"
resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f"
@@ -5805,6 +5842,12 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
homedir-polyfill@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
dependencies:
parse-passwd "^1.0.0"
hosted-git-info@^2.1.4, hosted-git-info@^2.6.0:
version "2.7.1"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
@@ -6207,7 +6250,7 @@ internal-ip@^4.0.0:
default-gateway "^4.0.1"
ipaddr.js "^1.9.0"
interpret@^1.0.0:
interpret@^1.0.0, interpret@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
@@ -6582,7 +6625,7 @@ is-utf8@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
is-windows@^1.0.0, is-windows@^1.0.2:
is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -7666,7 +7709,7 @@ micromatch@^2.3.11:
parse-glob "^3.0.4"
regex-cache "^0.4.2"
micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
dependencies:
@@ -7715,14 +7758,14 @@ mime@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
mime@>=2.0.3, mime@^2.0.3, mime@^2.3.1:
version "2.4.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6"
mime@^1.3.4:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
mime@^2.0.3, mime@^2.3.1:
version "2.4.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6"
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
@@ -8398,10 +8441,6 @@ only@~0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
opener@1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
opn@^5.1.0, opn@^5.3.0:
version "5.4.0"
resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035"
@@ -8746,6 +8785,10 @@ parse-json@^4.0.0:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
parseurl@^1.3.2, parseurl@~1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
@@ -8859,14 +8902,6 @@ phin@^2.9.1:
version "2.9.3"
resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c"
picasso-plugin-q@^0.23.2:
version "0.23.2"
resolved "https://registry.yarnpkg.com/picasso-plugin-q/-/picasso-plugin-q-0.23.2.tgz#c21a09264427cca516291bf196cc2e51d6ec3b74"
picasso.js@^0.23.2:
version "0.23.2"
resolved "https://registry.yarnpkg.com/picasso.js/-/picasso.js-0.23.2.tgz#10c515990b45c5c7c23bbf1fc4b70dc6c2999187"
pify@^2.0.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -9981,6 +10016,13 @@ resolve-cwd@^2.0.0:
dependencies:
resolve-from "^3.0.0"
resolve-dir@^1.0.0, resolve-dir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
dependencies:
expand-tilde "^2.0.0"
global-modules "^1.0.0"
resolve-from@4.0.0, resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
@@ -10143,13 +10185,6 @@ rollup-plugin-sass@^1.1.0:
rollup-pluginutils ">= 1.3.1"
sass "1.7.2"
rollup-plugin-serve@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/rollup-plugin-serve/-/rollup-plugin-serve-1.0.1.tgz#2da2a784a916c5564609c7696cd9dacdbf17f6cc"
dependencies:
mime ">=2.0.3"
opener "1"
rollup-plugin-terser@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-4.0.3.tgz#1525698d1b1cba724ed2c805e84b5ef7efc840e3"
@@ -11522,6 +11557,10 @@ uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
v8-compile-cache@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c"
validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -11617,6 +11656,22 @@ webidl-conversions@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
webpack-cli@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.1.tgz#98b0499c7138ba9ece8898bd99c4f007db59909d"
dependencies:
chalk "^2.4.1"
cross-spawn "^6.0.5"
enhanced-resolve "^4.1.0"
findup-sync "^2.0.0"
global-modules "^1.0.0"
import-local "^2.0.0"
interpret "^1.1.0"
loader-utils "^1.1.0"
supports-color "^5.5.0"
v8-compile-cache "^2.0.2"
yargs "^12.0.5"
webpack-dev-middleware@^3.5.1:
version "3.6.0"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.0.tgz#71f1b04e52ff8d442757af2be3a658237d53a3e5"
@@ -11727,7 +11782,7 @@ which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
which@1, which@^1.2.10, which@^1.2.8, which@^1.2.9, which@^1.3.0, which@^1.3.1:
which@1, which@^1.2.10, which@^1.2.14, which@^1.2.8, which@^1.2.9, which@^1.3.0, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
dependencies: