Configuration.resolve 具有未知属性“root”
Posted
技术标签:
【中文标题】Configuration.resolve 具有未知属性“root”【英文标题】:Configuration.resolve has an unknown property 'root' 【发布时间】:2017-08-23 18:01:36 【问题描述】:我收到以下错误:
配置对象无效。 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)/
]
;
【问题讨论】:
【参考方案1】:resolve.root
是 Webpack 1 的配置,在 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 中已被弃用。
【讨论】:
【参考方案2】:您是否尝试过删除 LINE 8?它是否通过任何错误?
您可能已经猜到,当您尝试设置无效的属性时,它会引发错误。
您在配置 webpack 时可能遵循的说明可能已过时。
在没有 LINE 8 的情况下试一试,如果问题仍然存在,请告诉我,我们可以一起解决。
【讨论】:
以上是关于Configuration.resolve 具有未知属性“root”的主要内容,如果未能解决你的问题,请参考以下文章