Javascript 从webpack v1移动到v2

Javascript 从webpack v1移动到v2,javascript,webpack,Javascript,Webpack,我正在尝试将我的代码从WebpackV1迁移到v2,并添加到sass加载程序中,但是出现了错误 throw new WebpackOptionsValidationError(webpackOptionsValidationErrors); 我很困惑最终文件应该是什么样子: let webpack = require('webpack'); let path = require('path'); module.exports = { devtool: 'eval-source-ma

我正在尝试将我的代码从WebpackV1迁移到v2,并添加到sass加载程序中,但是出现了错误

throw new WebpackOptionsValidationError(webpackOptionsValidationErrors);
我很困惑最终文件应该是什么样子:

let webpack = require('webpack');
let path = require('path');


module.exports = {
    devtool: 'eval-source-map',
  entry: [
    './src/index'
  ],
  module: {

   rules: [
       {
           test: /\.scss$/,
           use: [
               "style-loader", // creates style nodes from JS strings
               "css-loader", // translates CSS into CommonJS
               "sass-loader" // compiles Sass to CSS
           ]
       }],

      test: /\.js?$/,
      loader: 'babel-loader',
      exclude: /node_modules/


 },

  resolve: {
    extensions: ['.js'],
      options: {
          enforceExtension: false
      }
  },

  output: {
    path: path.join(__dirname, '/dist'),
    publicPath: '/',
    filename: 'bundle.js'
  },

  devServer: {
    contentBase: './dist',
    hot: true,
      historyApiFallback: true
  },

  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
      new webpack.LoaderOptionsPlugin({
          debug: true,
               options: {
           context: __dirname
         }
   })
  ]
};

目前,代码是两个版本的混合。我使用的是网页包版本2.2.1。谢谢。

有几件事你需要改变:

您的
测试:/\.js?$/
和相应的
加载程序
排除
应该是
规则
数组中的另一个对象:

module: {
  rules: [
    {
      test: /\.scss$/,
      use: [
        "style-loader", // creates style nodes from JS strings
        "css-loader", // translates CSS into CommonJS
        "sass-loader" // compiles Sass to CSS
      ]
    },
    {
      test: /\.js?$/,
      loader: 'babel-loader',
      exclude: /node_modules/
    }
  ]
},
resolve.options
不存在,它只是直接:

resolve: {
  extensions: ['.js'],
  enforceExtension: false
},
最后,尽管这不是一个错误,只是一个警告,
new webpack.NoErrorsPlugin()
已被弃用,并已替换为:

new webpack.NoEmitOnErrorsPlugin()
另外,如果您还没有,您应该看看官方文档中的迁移指南