2017-03-30 104 views
18

我得到以下錯誤:Configuration.resolve有未知屬性「根」

無效的配置對象。 Webpack已使用不匹配API模式的 配置對象進行初始化。 - configuration.resolve有一個未知屬性'root'。這些屬性是有效的:object {alias?,aliasFields ?, cachePredicate?,descriptionFiles?,enforceExtension ?, enforceModuleExtension?,extensions ?, fileSystem ?, mainFields ?, mainFiles?,moduleExtensions?,modules?,plugins?,resolver ?, 符號鏈接?,unsafeCache?,useSyncFileSystemCalls? }

我用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)/ 
    }] 
    } 
}; 

回答

30

resolve.root是的WebPack 1個配置和的WebPack 2.

不存在的WebPack 2,你可以使用resolve.moduleshttps://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中已棄用。

1

你有沒有嘗試刪除第8行?是否通過任何錯誤?

正如你可能猜到它是拋出一個錯誤,因爲你試圖設置一個無效的屬性。

配置webpack時可能遵循的說明有可能已過時。

如果問題仍然存在,請告訴我,如果問題仍然存在,我們可以將它們一起解決。