Issue 1:
I migrate from 1.x to 2.3.2 latest webpack and webpack-server, my webpack config as following:

`var webpack = require('webpack');

var autoprefixer = require('autoprefixer');

var path = require('path');

var config = require('config')

var CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');

module.exports = {

resolve: {

extensions: ['.js', '.ts', '.tsx', '.js'],

modules: ['node_modules'],

alias: {

bower: path.resolve(__dirname, 'ui/bower_components'),

"matches-selector/matches-selector": "desandro-matches-selector",

"eventEmitter/EventEmitter": "wolfy87-eventemitter",

"get-style-property/get-style-property": "desandro-get-style-property"

}

},

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&mimetype=image/jpg'],
query: { mimetype: "image/jpg" }
}, {
test: /\.gif$/,
use: ['url-loader?limit=8192&mimetype=image/gif'],
query: { mimetype: "image/gif" }
}, {
test: /\.webp$/,
use: ['url-loader?limit=8192&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&mimetype=application/font-woff"]
}, {
test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
use: ["url?limit=10000&mimetype=application/font-woff"]
}, {
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
use: ["url?limit=10000&mimetype=application/octet-stream"]
}, {
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
use: ["file"]
}, {
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
use: ["url?limit=10000&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'
}),
],

};

`

My wepack version as following:

"webpack": "^2.3.2",

"webpack-dev-server": "^2.4.2",

when start webpack, it show following error message:

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.

configuration.entry should be one of these:

object { : non-empty string | [non-empty string] } | non-empty string | [non-empty string] | function

The entry point(s) of the compilation.

Details:

configuration.entry['app'] should be a string.

configuration.entry['app'] should NOT have duplicate items (items ## 1 and 3 are identical) ({

"keyword": "uniqueItems",

"dataPath": ".entry['app']",

"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",

"params": {

"i": 3,

"j": 1

},

"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",

"schema": true,

"parentSchema": {

"items": {

"minLength": 1,

"type": "string"

},

"minItems": 1,

"type": "array",

"uniqueItems": true

},

"data": [

"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"./ui/app/index.ts"

]

}).

[non-empty string]

configuration.entry['app'] should be one of these:

non-empty string | [non-empty string]

configuration.entry['app_vendor'] should be a string.

configuration.entry['app_vendor'] should NOT have duplicate items (items ## 1 and 3 are identical) ({

"keyword": "uniqueItems",

"dataPath": ".entry['app_vendor']",

"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",

"params": {

"i": 3,

"j": 1

},

"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",

"schema": true,

"parentSchema": {

"items": {

"minLength": 1,

"type": "string"

},

"minItems": 1,

"type": "array",

"uniqueItems": true

},

"data": [

"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"./ui/app/vendor.index.ts"

]

}).

[non-empty string]

configuration.entry['app_vendor'] should be one of these:

non-empty string | [non-empty string]

configuration.entry['home'] should be a string.

configuration.entry['home'] should NOT have duplicate items (items ## 1 and 3 are identical) ({

"keyword": "uniqueItems",

"dataPath": ".entry['home']",

"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",

"params": {

"i": 3,

"j": 1

},

"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",

"schema": true,

"parentSchema": {

"items": {

"minLength": 1,

"type": "string"

},

"minItems": 1,

"type": "array",

"uniqueItems": true

},

"data": [

"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"./ui/home/index.ts"

]

}).

[non-empty string]

configuration.entry['home'] should be one of these:

non-empty string | [non-empty string]

configuration.entry['home_vendor'] should be a string.

configuration.entry['home_vendor'] should NOT have duplicate items (items ## 1 and 3 are identical) ({

"keyword": "uniqueItems",

"dataPath": ".entry['home_vendor']",

"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",

"params": {

"i": 3,

"j": 1

},

"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",

"schema": true,

"parentSchema": {

"items": {

"minLength": 1,

"type": "string"

},

"minItems": 1,

"type": "array",

"uniqueItems": true

},

"data": [

"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"./ui/home/vendor.index.ts"

]

}).

[non-empty string]

configuration.entry['home_vendor'] should be one of these:

non-empty string | [non-empty string]

configuration.entry should be a string.

configuration.entry should be an array:

[non-empty string]

configuration.entry should be an instance of function

function returning an entry object or a promise..

Issue 2:
I migrate from webpack from 1.x to latest 2.3.1, when I start, always show module.entry is invalid.

my webpack config as follwing， I did not see any issue in the config.

var webpack = require('webpack');

var autoprefixer = require('autoprefixer');

var path = require('path');

var config = require('config')

var CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');

module.exports = {

resolve: {

extensions: ['.js', '.ts', '.tsx', '.js'],

modules: ['node_modules'],

alias: {

bower: path.resolve(__dirname, 'ui/bower_components'),

"matches-selector/matches-selector": "desandro-matches-selector",

"eventEmitter/EventEmitter": "wolfy87-eventemitter",

"get-style-property/get-style-property": "desandro-get-style-property"

}

},

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&mimetype=image/jpg'],
query: { mimetype: "image/jpg" }
}, {
test: /\.gif$/,
use: ['url-loader?limit=8192&mimetype=image/gif'],
query: { mimetype: "image/gif" }
}, {
test: /\.webp$/,
use: ['url-loader?limit=8192&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&mimetype=application/font-woff"]
}, {
test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
use: ["url?limit=10000&mimetype=application/font-woff"]
}, {
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
use: ["url?limit=10000&mimetype=application/octet-stream"]
}, {
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
use: ["file"]
}, {
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
use: ["url?limit=10000&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'
}),
],

};

the error message as following:

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.

configuration.entry should be one of these:

object { : non-empty string | [non-empty string] } | non-empty string | [non-empty string] | function

The entry point(s) of the compilation.

Details:

configuration.entry['home'] should be a string.

configuration.entry['home'] should NOT have duplicate items (items ## 1 and 3 are identical) ({

"keyword": "uniqueItems",

"dataPath": ".entry['home']",

"schemaPath": "#/definitions/common.nonEmptyArrayOfUniqueStringValues/uniqueItems",

"params": {

"i": 3,

"j": 1

},

"message": "should NOT have duplicate items (items ## 1 and 3 are identical)",

"schema": true,

"parentSchema": {

"items": {

"minLength": 1,

"type": "string"

},

"minItems": 1,

"type": "array",

"uniqueItems": true

},

"data": [

"/usr/local/lib/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"/Users/yishuihanxiao/ws/ror/University_Work/node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:4000",

"webpack/hot/dev-server",

"./ui/home/index.ts"

]

}).

[non-empty string]

configuration.entry['home'] should be one of these:

non-empty string | [non-empty string]

configuration.entry should be a string.

configuration.entry should be an array:

[non-empty string]

configuration.entry should be an instance of function

function returning an entry object or a promise..