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”的主要内容,如果未能解决你的问题,请参考以下文章

为啥在函数体内定义的内置类型的未初始化对象具有未定义的值?

复制具有未初始化成员的结构

具有未捕获的referenceError的问题。 $未定义

广度优先搜索。顶点是不是可以具有具有不同父级的相邻顶点并且已被发现但未处理

AutoMapper 具有未映射属性的问题

ParseServer 删除具有“未注册”状态的安装