diff --git a/frameworks/keyed/react-mobX/package.json b/frameworks/keyed/react-mobX/package.json index 44e562eb8..d7ca2bf49 100644 --- a/frameworks/keyed/react-mobX/package.json +++ b/frameworks/keyed/react-mobX/package.json @@ -30,13 +30,14 @@ "babel-preset-react": "6.24.1", "babel-preset-stage-0": "6.24.1", "jsx-loader": "0.13.2", + "terser-webpack-plugin": "^3.0.6", "webpack": "4.16.3", "webpack-cli": "^3.1.0" }, "dependencies": { - "mobx": "5.0.3", - "mobx-react": "5.2.3", - "react": "16.4.1", - "react-dom": "16.4.1" + "mobx": "5.15.4", + "mobx-react": "6.2.2", + "react": "16.13.1", + "react-dom": "16.13.1" } } diff --git a/frameworks/keyed/react-mobX/src/Main.jsx b/frameworks/keyed/react-mobX/src/Main.jsx index 305ec2b27..8ea611be6 100644 --- a/frameworks/keyed/react-mobX/src/Main.jsx +++ b/frameworks/keyed/react-mobX/src/Main.jsx @@ -2,6 +2,7 @@ var React = require('react'); var ReactDOM = require('react-dom'); +require('mobx-react/batchingForReactDom'); const {Row} = require('./Row'); var {observer} = require("mobx-react"); var {observable, computed} = require ("mobx"); @@ -91,4 +92,4 @@ export class Main extends React.Component{ let store = new Store(); -ReactDOM.render(
, document.getElementById('main')); \ No newline at end of file +ReactDOM.render(
, document.getElementById('main')); diff --git a/frameworks/keyed/react-mobX/webpack.config.js b/frameworks/keyed/react-mobX/webpack.config.js index beac8085d..0a5a17a6a 100755 --- a/frameworks/keyed/react-mobX/webpack.config.js +++ b/frameworks/keyed/react-mobX/webpack.config.js @@ -1,49 +1,50 @@ -'use strict'; -require("babel-plugin-syntax-jsx") -var path = require('path') -var webpack = require('webpack') +"use strict"; +require("babel-plugin-syntax-jsx"); +var path = require("path"); +var webpack = require("webpack"); +var TerserPlugin = require("terser-webpack-plugin"); var cache = {}; var loaders = [ - { - test: /\.jsx$/, - loader: 'babel-loader' - }, - { - test: /\.es6\.js$/, - loader: 'babel-loader' - }, - { - test: /\.css$/, - loader: 'style-loader!css-loader' - } -]; -var extensions = [ - '.js', '.jsx', '.es6.js' + { + test: /\.jsx$/, + loader: "babel-loader", + }, + { + test: /\.es6\.js$/, + loader: "babel-loader", + }, + { + test: /\.css$/, + loader: "style-loader!css-loader", + }, ]; +var extensions = [".js", ".jsx", ".es6.js"]; -module.exports = [{ - cache: cache, - module: { - rules: loaders - }, - entry: { - main: './src/Main.jsx', - }, - output: { - path: path.resolve(__dirname, "dist"), - filename: '[name].js' - }, - resolve: { - extensions: extensions, - modules: [ - __dirname, - path.resolve(__dirname, "src"), - "node_modules" - ] - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': '"production"' - }) - ] -}]; \ No newline at end of file +module.exports = [ + { + cache: cache, + module: { + rules: loaders, + }, + entry: { + main: "./src/Main.jsx", + }, + output: { + path: path.resolve(__dirname, "dist"), + filename: "[name].js", + }, + resolve: { + extensions: extensions, + modules: [__dirname, path.resolve(__dirname, "src"), "node_modules"], + }, + optimization: { + minimize: true, + minimizer: [new TerserPlugin()], + }, + plugins: [ + new webpack.DefinePlugin({ + "process.env.NODE_ENV": '"production"', + }), + ], + }, +];