2017-10-09 4 views
0

Ich habe gerade aktualisiert, um Webpack 3. Dies ist meine Konfigurationsdatei. Dies ist eine einfache Webpack-Datei, die primär reagiert.Upgrade auf webpack3 und jetzt bekomme ich einen Fehler

const path = require('path'); 
const ExtractTextPlugin = require('extract-text-webpack-plugin'); 

module.exports = { 
    entry: './index.jsx', 
    context: path.resolve('src'), 
    output: { 
     path: path.resolve('build'), 
     filename: 'bundle.js', 
     publicPath: '/public/assets', 
    }, 
    devServer: { 
     historyApiFallback: { 
      index: 'index.html' 
     }, 
    }, 
    module: { 
     rules: [ 
      { 
       test: [/\.es6?$/, /\.jsx?/], 
       exclude: /node_modules/, 
       loader: 'babel-loader', 
       query: { 
        presets: ['es2015', 'react', 'stage-2'] 
       } 
      }, 
      { 
       test: /\.scss$/, 
       // eslint-disable-next-line max-len 
       loader: ExtractTextPlugin.extract('style', '!css-loader?modules&localIdentName=[name]__[local]___[hash:base64:5]&sourceMap!sass?sourceMap') 
      }, 
      { 
       test: /\.svg$/, 
       loader: 'url?limit=65000&mimetype=image/svg+xml&name=public/fonts/[name].[ext]' 
      } 
     ] 
    }, 
    plugins: [ 
     new ExtractTextPlugin('styles.css') 
    ], 
    watch: false, 
    resolve: { 
     extensions: ['.js', '.jsx', '.json', '.es6', '.scss'] 
    }, 
}; 

Jetzt bekomme ich folgende Fehlermeldung

throw new Error ("Module '" + loader.path + "' ist kein Lader (normal oder Pitch-Funktion haben muss)");

Wie behebe ich das? Ich denke, es ist die. SVG-Regel, die dieses Problem verursacht.

Antwort

0

Sie sollten loader in allen Lader haben (wegen webpack> 2 Entfernen auto resolve -loader Modulnamen https://webpack.js.org/guides/migrating/#automatic-loader-module-name-extension-removed)

const path = require('path'); 
const ExtractTextPlugin = require('extract-text-webpack-plugin'); 

module.exports = { 
    entry: './index.jsx', 
    context: path.resolve('src'), 
    output: { 
     path: path.resolve('build'), 
     filename: 'bundle.js', 
     publicPath: '/public/assets', 
    }, 
    devServer: { 
     historyApiFallback: { 
      index: 'index.html' 
     }, 
    }, 
    module: { 
     rules: [ 
      { 
       test: [/\.es6?$/, /\.jsx?/], 
       exclude: /node_modules/, 
       loader: 'babel-loader', 
       query: { 
        presets: ['es2015', 'react', 'stage-2'] 
       } 
      }, 
      { 
       test: /\.scss$/, 
       // eslint-disable-next-line max-len 
       loader: ExtractTextPlugin.extract('style-loader', '!css-loader?modules&localIdentName=[name]__[local]___[hash:base64:5]&sourceMap!sass-loader?sourceMap') 
      }, 
      { 
       test: /\.svg$/, 
       loader: 'url-loader?limit=65000&mimetype=image/svg+xml&name=public/fonts/[name].[ext]' 
      } 
     ] 
    }, 
    plugins: [ 
     new ExtractTextPlugin('styles.css') 
    ], 
    watch: false, 
    resolve: { 
     extensions: ['.js', '.jsx', '.json', '.es6', '.scss'] 
    }, 
}; 
+0

ich das versucht, aber es funktioniert immer noch nicht. –

+0

Können Sie hier Fehler hinzufügen? – imcvampire

Verwandte Themen