<p dir="auto">I migrate from 1.x to 2.3.2 latest webpack and webpack-server, my webpack config as following:<br>
`var webpack            = require('webpack');<br>
var autoprefixer       = require('autoprefixer');<br>
var path               = require('path');<br>
var config             = require('config')<br>
var CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');</p>
<p dir="auto">module.exports = {<br>
resolve: {<br>
extensions: ['.js', '.ts', '.tsx', '.js'],<br>
modules: ['node_modules'],<br>
alias: {<br>
bower: path.resolve(__dirname, 'ui/bower_components'),<br>
"matches-selector/matches-selector": "desandro-matches-selector",<br>
"eventEmitter/EventEmitter": "wolfy87-eventemitter",<br>
"get-style-property/get-style-property": "desandro-get-style-property"<br>
}<br>
},</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="entry: {
    app: './ui/app/index.ts',
    'app_vendor': './ui/app/vendor.index.ts',
    home: './ui/home/index.ts',
    'home_vendor': './ui/home/vendor.index.ts',
},

output: {
    path: path.resolve(__dirname, 'ui/build'),
    pathinfo: true,
    publicPath: config.uiServer.protocol + config.uiServer.host + ':' + config.uiServer.port + '/build/',
    filename: '[name].js'
},

devServer: {
    contentBase: './ui'
},

module: {
    rules: [
        {
            test: /\-template\.(|html|js)$/,
            use: ['raw']
        }, {
            test: /\.css$/,
            loader: &quot;style!css&quot;
        }, {
            test: /\.scss$/,
            include: [/node_modules/, /bower_components/],
            use: [{
                loader: &quot;style-loader&quot; // creates style nodes from JS strings
            }, {
                loader: &quot;css-loader&quot; // translates CSS into CommonJS
            }, {
                loader: &quot;sass-loader&quot; // compiles Sass to CSS
            }]
        }, {
            test: /\.scss$/,
            exclude: [/node_modules/, /bower_components/],
            use: [{
                loader: &quot;style-loader&quot;
            }, {
                loader: &quot;css-loader&quot;, options: {
                    sourceMap: true
                }
            }, {
                loader: &quot;sass-loader&quot;, options: {
                    sourceMap: true
                }
            }]
        }, {
            test: /\.tsx?$/, 
            use: ['ts-loader']
        }, {
            test: /\.coffee$/,
            use: [&quot;coffee&quot;]
        }, {
            test: /\.json$/,
            use: [&quot;json&quot;]
        }, {
            test: /\.pug$/,
            use: [&quot;ngtemplate?relativeTo=&quot; + __dirname + &quot;!raw!pug-html?basedir=&quot; + __dirname]
        }, {
            test: /\.png$/,
            use: ['url-loader?limit=8192'],
            query: { mimetype: &quot;image/png&quot; }
        }, {
            test: /\.jpg$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/jpg'],
            query: { mimetype: &quot;image/jpg&quot; }
        }, {
            test: /\.gif$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/gif'],
            query: { mimetype: &quot;image/gif&quot; }
        }, {
            test: /\.webp$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/webp'],
            query: { mimetype: &quot;image/webp&quot; }
        }, {
            test: /\.swf$/,
            use: ['url-loader?mimetype=application/x-shockwave-flash'],
            query: { mimetype: &quot;application/x-shockwave-flash&quot; }
        },
        // Added for bootstrap-css-loader
        {
            test: /bootstrap.*\/javascripts\//,
            use: ['imports?jQuery=jquery']
        }, {
            test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;url?limit=10000&amp;mimetype=application/font-woff&quot;]
        }, {
            test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;url?limit=10000&amp;mimetype=application/font-woff&quot;]
        }, {
            test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;url?limit=10000&amp;mimetype=application/octet-stream&quot;]
        }, {
            test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;file&quot;]
        }, {
            test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;url?limit=10000&amp;mimetype=image/svg+xml&quot;]
        }
    ],

    noParse: [
        /bower_components/
    ]
},

plugins: [
    new CommonsChunkPlugin({
        name: 'app_vendor',
        chunks: ['app', 'app_vendor']
    }),
    new CommonsChunkPlugin({
        name: 'home_vendor',
        chunks: ['home', 'home_vendor']
    }),
    new webpack.SourceMapDevToolPlugin({
        exclude: /.*\.vendor\.js/,
        columns: false,
        module: true
    }),
    new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        &quot;window.jQuery&quot;: 'jquery',
        '_': 'lodash',
        i18next: 'i18next'
    }),
],"><pre class="notranslate"><code class="notranslate">entry: {
    app: './ui/app/index.ts',
    'app_vendor': './ui/app/vendor.index.ts',
    home: './ui/home/index.ts',
    'home_vendor': './ui/home/vendor.index.ts',
},

output: {
    path: path.resolve(__dirname, 'ui/build'),
    pathinfo: true,
    publicPath: config.uiServer.protocol + config.uiServer.host + ':' + config.uiServer.port + '/build/',
    filename: '[name].js'
},

devServer: {
    contentBase: './ui'
},

module: {
    rules: [
        {
            test: /\-template\.(|html|js)$/,
            use: ['raw']
        }, {
            test: /\.css$/,
            loader: "style!css"
        }, {
            test: /\.scss$/,
            include: [/node_modules/, /bower_components/],
            use: [{
                loader: "style-loader" // creates style nodes from JS strings
            }, {
                loader: "css-loader" // translates CSS into CommonJS
            }, {
                loader: "sass-loader" // compiles Sass to CSS
            }]
        }, {
            test: /\.scss$/,
            exclude: [/node_modules/, /bower_components/],
            use: [{
                loader: "style-loader"
            }, {
                loader: "css-loader", options: {
                    sourceMap: true
                }
            }, {
                loader: "sass-loader", options: {
                    sourceMap: true
                }
            }]
        }, {
            test: /\.tsx?$/, 
            use: ['ts-loader']
        }, {
            test: /\.coffee$/,
            use: ["coffee"]
        }, {
            test: /\.json$/,
            use: ["json"]
        }, {
            test: /\.pug$/,
            use: ["ngtemplate?relativeTo=" + __dirname + "!raw!pug-html?basedir=" + __dirname]
        }, {
            test: /\.png$/,
            use: ['url-loader?limit=8192'],
            query: { mimetype: "image/png" }
        }, {
            test: /\.jpg$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/jpg'],
            query: { mimetype: "image/jpg" }
        }, {
            test: /\.gif$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/gif'],
            query: { mimetype: "image/gif" }
        }, {
            test: /\.webp$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/webp'],
            query: { mimetype: "image/webp" }
        }, {
            test: /\.swf$/,
            use: ['url-loader?mimetype=application/x-shockwave-flash'],
            query: { mimetype: "application/x-shockwave-flash" }
        },
        // Added for bootstrap-css-loader
        {
            test: /bootstrap.*\/javascripts\//,
            use: ['imports?jQuery=jquery']
        }, {
            test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
            use: ["url?limit=10000&amp;mimetype=application/font-woff"]
        }, {
            test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
            use: ["url?limit=10000&amp;mimetype=application/font-woff"]
        }, {
            test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
            use: ["url?limit=10000&amp;mimetype=application/octet-stream"]
        }, {
            test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
            use: ["file"]
        }, {
            test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
            use: ["url?limit=10000&amp;mimetype=image/svg+xml"]
        }
    ],

    noParse: [
        /bower_components/
    ]
},

plugins: [
    new CommonsChunkPlugin({
        name: 'app_vendor',
        chunks: ['app', 'app_vendor']
    }),
    new CommonsChunkPlugin({
        name: 'home_vendor',
        chunks: ['home', 'home_vendor']
    }),
    new webpack.SourceMapDevToolPlugin({
        exclude: /.*\.vendor\.js/,
        columns: false,
        module: true
    }),
    new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        "window.jQuery": 'jquery',
        '_': 'lodash',
        i18next: 'i18next'
    }),
],
</code></pre></div>
<p dir="auto">};<br>
`</p>


<p dir="auto">My wepack version as following:<br>
"webpack": "^2.3.2",<br>
"webpack-dev-server": "^2.4.2",</p>



<p dir="auto">when start webpack, it show following error message:<br>
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.</p>
<ul dir="auto">
<li>configuration.entry should be one of these:<br>
object { : non-empty string | [non-empty string] } | non-empty string | [non-empty string] | function<br>
The entry point(s) of the compilation.<br>
Details:
<ul dir="auto">
<li>configuration.entry['app'] should be a string.</li>
<li>configuration.entry['app'] should NOT have duplicate items (items ## 1 and 3 are identical) ({<br>
"keyword": "uniqueItems",<br>
"dataPath": ".entry['app']",<br>
"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",<br>
"params": {<br>
"i": 3,<br>
"j": 1<br>
},<br>
"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",<br>
"schema": true,<br>
"parentSchema": {<br>
"items": {<br>
"minLength": 1,<br>
"type": "string"<br>
},<br>
"minItems": 1,<br>
"type": "array",<br>
"uniqueItems": true<br>
},<br>
"data": [<br>
"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"./ui/app/index.ts"<br>
]<br>
}).<br>
[non-empty string]</li>
<li>configuration.entry['app'] should be one of these:<br>
non-empty string | [non-empty string]</li>
<li>configuration.entry['app_vendor'] should be a string.</li>
<li>configuration.entry['app_vendor'] should NOT have duplicate items (items ## 1 and 3 are identical) ({<br>
"keyword": "uniqueItems",<br>
"dataPath": ".entry['app_vendor']",<br>
"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",<br>
"params": {<br>
"i": 3,<br>
"j": 1<br>
},<br>
"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",<br>
"schema": true,<br>
"parentSchema": {<br>
"items": {<br>
"minLength": 1,<br>
"type": "string"<br>
},<br>
"minItems": 1,<br>
"type": "array",<br>
"uniqueItems": true<br>
},<br>
"data": [<br>
"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"./ui/app/vendor.index.ts"<br>
]<br>
}).<br>
[non-empty string]</li>
<li>configuration.entry['app_vendor'] should be one of these:<br>
non-empty string | [non-empty string]</li>
<li>configuration.entry['home'] should be a string.</li>
<li>configuration.entry['home'] should NOT have duplicate items (items ## 1 and 3 are identical) ({<br>
"keyword": "uniqueItems",<br>
"dataPath": ".entry['home']",<br>
"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",<br>
"params": {<br>
"i": 3,<br>
"j": 1<br>
},<br>
"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",<br>
"schema": true,<br>
"parentSchema": {<br>
"items": {<br>
"minLength": 1,<br>
"type": "string"<br>
},<br>
"minItems": 1,<br>
"type": "array",<br>
"uniqueItems": true<br>
},<br>
"data": [<br>
"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"./ui/home/index.ts"<br>
]<br>
}).<br>
[non-empty string]</li>
<li>configuration.entry['home'] should be one of these:<br>
non-empty string | [non-empty string]</li>
<li>configuration.entry['home_vendor'] should be a string.</li>
<li>configuration.entry['home_vendor'] should NOT have duplicate items (items ## 1 and 3 are identical) ({<br>
"keyword": "uniqueItems",<br>
"dataPath": ".entry['home_vendor']",<br>
"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",<br>
"params": {<br>
"i": 3,<br>
"j": 1<br>
},<br>
"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",<br>
"schema": true,<br>
"parentSchema": {<br>
"items": {<br>
"minLength": 1,<br>
"type": "string"<br>
},<br>
"minItems": 1,<br>
"type": "array",<br>
"uniqueItems": true<br>
},<br>
"data": [<br>
"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"./ui/home/vendor.index.ts"<br>
]<br>
}).<br>
[non-empty string]</li>
<li>configuration.entry['home_vendor'] should be one of these:<br>
non-empty string | [non-empty string]</li>
<li>configuration.entry should be a string.</li>
<li>configuration.entry should be an array:<br>
[non-empty string]</li>
<li>configuration.entry should be an instance of function<br>
function returning an entry object or a promise..</li>
</ul>
</li>
</ul>
<p dir="auto">I migrate from webpack from 1.x to latest 2.3.1, when I start, always show module.entry is invalid.</p>
<p dir="auto">my webpack config as follwing， I did not see any issue in the config.</p>
<p dir="auto">var webpack            = require('webpack');<br>
var autoprefixer       = require('autoprefixer');<br>
var path               = require('path');<br>
var config             = require('config')<br>
var CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');</p>
<p dir="auto">module.exports = {<br>
resolve: {<br>
extensions: ['.js', '.ts', '.tsx', '.js'],<br>
modules: ['node_modules'],<br>
alias: {<br>
bower: path.resolve(__dirname, 'ui/bower_components'),<br>
"matches-selector/matches-selector": "desandro-matches-selector",<br>
"eventEmitter/EventEmitter": "wolfy87-eventemitter",<br>
"get-style-property/get-style-property": "desandro-get-style-property"<br>
}<br>
},</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="entry: {
    app: path.resolve(__dirname, 'ui/app/index.ts')
    'app.vendor': './ui/editor/app.index.ts',
    home: './ui/home/index.ts',
    'home.vendor': './ui/home/vendor.index.ts',
},

output: {
    path: path.resolve(__dirname, 'ui/build'),
    pathinfo: true,
    publicPath: config.uiServer.protocol + config.uiServer.host + ':' + config.uiServer.port + '/build/',
    filename: '[name].js'
},

devServer: {
    contentBase: './ui'
},

module: {
    rules: [
        {
            test: /\-template\.(|html|js)$/,
            use: ['raw']
        }, {
            test: /\.css$/,
            loader: &quot;style!css&quot;
        }, {
            test: /\.scss$/,
            include: [/node_modules/, /bower_components/],
            use: [{
                loader: &quot;style-loader&quot; // creates style nodes from JS strings
            }, {
                loader: &quot;css-loader&quot; // translates CSS into CommonJS
            }, {
                loader: &quot;sass-loader&quot; // compiles Sass to CSS
            }]
        }, {
            test: /\.scss$/,
            exclude: [/node_modules/, /bower_components/],
            use: [{
                loader: &quot;style-loader&quot;
            }, {
                loader: &quot;css-loader&quot;, options: {
                    sourceMap: true
                }
            }, {
                loader: &quot;sass-loader&quot;, options: {
                    sourceMap: true
                }
            }]
        }, {
            test: /\.tsx?$/, 
            use: ['ts-loader']
        }, {
            test: /\.coffee$/,
            use: [&quot;coffee&quot;]
        }, {
            test: /\.json$/,
            use: [&quot;json&quot;]
        }, {
            test: /\.pug$/,
            use: [&quot;ngtemplate?relativeTo=&quot; + __dirname + &quot;!raw!pug-html?basedir=&quot; + __dirname]
        }, {
            test: /\.png$/,
            use: ['url-loader?limit=8192'],
            query: { mimetype: &quot;image/png&quot; }
        }, {
            test: /\.jpg$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/jpg'],
            query: { mimetype: &quot;image/jpg&quot; }
        }, {
            test: /\.gif$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/gif'],
            query: { mimetype: &quot;image/gif&quot; }
        }, {
            test: /\.webp$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/webp'],
            query: { mimetype: &quot;image/webp&quot; }
        }, {
            test: /\.swf$/,
            use: ['url-loader?mimetype=application/x-shockwave-flash'],
            query: { mimetype: &quot;application/x-shockwave-flash&quot; }
        },
        // Added for bootstrap-css-loader
        {
            test: /bootstrap.*\/javascripts\//,
            use: ['imports?jQuery=jquery']
        }, {
            test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;url?limit=10000&amp;mimetype=application/font-woff&quot;]
        }, {
            test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;url?limit=10000&amp;mimetype=application/font-woff&quot;]
        }, {
            test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;url?limit=10000&amp;mimetype=application/octet-stream&quot;]
        }, {
            test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;file&quot;]
        }, {
            test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
            use: [&quot;url?limit=10000&amp;mimetype=image/svg+xml&quot;]
        }
    ],

    noParse: [
        /bower_components/
    ]
},

plugins: [
    new CommonsChunkPlugin({
        name: 'app.vendor',
        chunks: ['app', 'app.vendor']
    }),
    new CommonsChunkPlugin({
        name: 'home.vendor',
        chunks: ['home', 'home.vendor']
    }),
    new webpack.SourceMapDevToolPlugin({
        exclude: /.*\.vendor\.js/,
        columns: false,
        module: true
    }),
    new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        &quot;window.jQuery&quot;: 'jquery',
        '_': 'lodash',
        i18next: 'i18next'
    }),
],"><pre class="notranslate"><code class="notranslate">entry: {
    app: path.resolve(__dirname, 'ui/app/index.ts')
    'app.vendor': './ui/editor/app.index.ts',
    home: './ui/home/index.ts',
    'home.vendor': './ui/home/vendor.index.ts',
},

output: {
    path: path.resolve(__dirname, 'ui/build'),
    pathinfo: true,
    publicPath: config.uiServer.protocol + config.uiServer.host + ':' + config.uiServer.port + '/build/',
    filename: '[name].js'
},

devServer: {
    contentBase: './ui'
},

module: {
    rules: [
        {
            test: /\-template\.(|html|js)$/,
            use: ['raw']
        }, {
            test: /\.css$/,
            loader: "style!css"
        }, {
            test: /\.scss$/,
            include: [/node_modules/, /bower_components/],
            use: [{
                loader: "style-loader" // creates style nodes from JS strings
            }, {
                loader: "css-loader" // translates CSS into CommonJS
            }, {
                loader: "sass-loader" // compiles Sass to CSS
            }]
        }, {
            test: /\.scss$/,
            exclude: [/node_modules/, /bower_components/],
            use: [{
                loader: "style-loader"
            }, {
                loader: "css-loader", options: {
                    sourceMap: true
                }
            }, {
                loader: "sass-loader", options: {
                    sourceMap: true
                }
            }]
        }, {
            test: /\.tsx?$/, 
            use: ['ts-loader']
        }, {
            test: /\.coffee$/,
            use: ["coffee"]
        }, {
            test: /\.json$/,
            use: ["json"]
        }, {
            test: /\.pug$/,
            use: ["ngtemplate?relativeTo=" + __dirname + "!raw!pug-html?basedir=" + __dirname]
        }, {
            test: /\.png$/,
            use: ['url-loader?limit=8192'],
            query: { mimetype: "image/png" }
        }, {
            test: /\.jpg$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/jpg'],
            query: { mimetype: "image/jpg" }
        }, {
            test: /\.gif$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/gif'],
            query: { mimetype: "image/gif" }
        }, {
            test: /\.webp$/,
            use: ['url-loader?limit=8192&amp;mimetype=image/webp'],
            query: { mimetype: "image/webp" }
        }, {
            test: /\.swf$/,
            use: ['url-loader?mimetype=application/x-shockwave-flash'],
            query: { mimetype: "application/x-shockwave-flash" }
        },
        // Added for bootstrap-css-loader
        {
            test: /bootstrap.*\/javascripts\//,
            use: ['imports?jQuery=jquery']
        }, {
            test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
            use: ["url?limit=10000&amp;mimetype=application/font-woff"]
        }, {
            test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
            use: ["url?limit=10000&amp;mimetype=application/font-woff"]
        }, {
            test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
            use: ["url?limit=10000&amp;mimetype=application/octet-stream"]
        }, {
            test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
            use: ["file"]
        }, {
            test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
            use: ["url?limit=10000&amp;mimetype=image/svg+xml"]
        }
    ],

    noParse: [
        /bower_components/
    ]
},

plugins: [
    new CommonsChunkPlugin({
        name: 'app.vendor',
        chunks: ['app', 'app.vendor']
    }),
    new CommonsChunkPlugin({
        name: 'home.vendor',
        chunks: ['home', 'home.vendor']
    }),
    new webpack.SourceMapDevToolPlugin({
        exclude: /.*\.vendor\.js/,
        columns: false,
        module: true
    }),
    new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        "window.jQuery": 'jquery',
        '_': 'lodash',
        i18next: 'i18next'
    }),
],
</code></pre></div>
<p dir="auto">};</p>
<p dir="auto">the error message as following:<br>
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.</p>
<ul dir="auto">
<li>configuration.entry should be one of these:<br>
object { : non-empty string | [non-empty string] } | non-empty string | [non-empty string] | function<br>
The entry point(s) of the compilation.<br>
Details:
<ul dir="auto">
<li>configuration.entry['home'] should be a string.</li>
<li>configuration.entry['home'] should NOT have duplicate items (items ## 1 and 3 are identical) ({<br>
"keyword": "uniqueItems",<br>
"dataPath": ".entry['home']",<br>
"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",<br>
"params": {<br>
"i": 3,<br>
"j": 1<br>
},<br>
"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",<br>
"schema": true,<br>
"parentSchema": {<br>
"items": {<br>
"minLength": 1,<br>
"type": "string"<br>
},<br>
"minItems": 1,<br>
"type": "array",<br>
"uniqueItems": true<br>
},<br>
"data": [<br>
"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",<br>
"webpack/hot/dev-server",<br>
"./ui/home/index.ts"<br>
]<br>
}).<br>
[non-empty string]</li>
<li>configuration.entry['home'] should be one of these:<br>
non-empty string | [non-empty string]</li>
<li>configuration.entry should be a string.</li>
<li>configuration.entry should be an array:<br>
[non-empty string]</li>
<li>configuration.entry should be an instance of function<br>
function returning an entry object or a promise..</li>
</ul>
</li>
</ul>