Configuration.resolve有一个未知的属性'root'

我得到以下错误:

无效的configuration对象。 Webpack已经使用与API模式不匹配的configuration对象进行了初始化。 – configuration.resolve有一个未知的属性'root'。 这些属性是有效的:object {alias?,aliasFields ?, cachePredicate?,descriptionFiles?,enforceExtension ?, enforceModuleExtension ?, extensions ?, fileSystem ?, mainFields ?, mainFiles?,moduleExtensions?,modules ?, plugins?,resolver?,symlinks ?,unsafeCache ?,使用SyncFileSystemCalls? }

我使用webpack 2.3.2 。


我的webpack.config.js看起来像这样:

module.exports= { entry:'./public/app.jsx', output: { path: __dirname, filename:'./public/bundle.js' }, resolve: { root: __dirname, alias:{ Mod1: 'public/components/mod1.jsx', Mod2:'public/components/mod2.jsx', Mod3: 'public/components/mod3.jsx' }, extensions: ['*','.js','.jsx'] }, module :{ loaders:[{ loader :'babel-loader', query :{ presets:['react','es2015','es2017'] }, test:/\.jsx?$/, exclude:/(node_modules|bower_components)/ }] } }; 

resolve.root是Webpack 1的configuration,对于Webpack 2不存在。

对于Webpack 2,您可以使用resolve.modules: https ://webpack.js.org/configuration/resolve/#resolve-modules

 module.exports= { entry:'./public/app.jsx', output: { path: __dirname, filename:'./public/bundle.js' }, resolve: { modules: [__dirname, 'node_modules'], alias:{ Mod1: 'public/components/mod1.jsx', Mod2:'public/components/mod2.jsx', Mod3: 'public/components/mod3.jsx' }, extensions: ['*','.js','.jsx'] }, module :{ rules:[{ use : 'babel-loader', query :{ presets:['react','es2015','es2017'] }, test: /\.jsx?$/, exclude: /(node_modules|bower_components)/ }] } }; 

我也更新了module.loaders – > module.rules因为这已经在Webpack 2中被弃用了。

你有没有尝试删除LINE 8? 是否有任何错误?

正如你可能已经猜到它正在抛出一个错误,因为你试图设置一个无效的属性。

configurationwebpack时可能遵循的说明有可能已经过时。

在没有LINE 8的情况下给它一个去,让我知道如果问题依然存在,我们可以一起解决。