web-dev-qa-db-ja.com

Configuration.resolveに不明なプロパティ「root」があります

次のエラーが表示されます。

無効な構成オブジェクト。 Webpackは、APIスキーマと一致しない構成オブジェクトを使用して初期化されています。 -configuration.resolveに不明なプロパティ「root」があります。これらのプロパティは有効です:オブジェクト{alias?、aliasFields?、cachePredicate?、descriptionFiles?、enforceExtension?、enforceModuleExtension?、extensions、fileSystem?、mainFields?、mainFiles?、moduleExtensions?、modules、plugins?、resolver?、symlinks ?、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)/
    }]
  }
};
28

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で非推奨になりました。

46
Tom Van Rompaey

LINE 8を削除しようとしましたか?エラーはありますか?

おそらく推測したように、無効なプロパティを設定しようとするとエラーがスローされます。

Webpackを設定するときに従ったかもしれない指示が古い可能性があります。

LINE 8を使用せずに試してみて、問題が解決せず一緒に修正できるかどうかをお知らせください。

1
Molik Miah