2017-02-10 6 views
2

Ich arbeite an einem Projekt, das react, redux und firebase integriert. react-redux-firebase scheint ein praktisches Werkzeug zu sein. Der Code wird jedoch nicht erfolgreich ausgeführt. Unten ist der Fehler webpack.config.js, .babelrc und index.js. Vielen Dank für die Hilfe im Voraus.react-redux-firebase, "Möglicherweise benötigen Sie einen geeigneten Loader, um diesen Dateityp zu verarbeiten."

Fehlermeldung:

ERROR in ./~/react-redux-firebase/src/connect.js 
Module parse failed: 
/Users/xiqianglin/ucsdflyers/node_modules/react-redux-firebase/src/connect.js 
Unexpected token (43:24) You may need an appropriate loader to handle this file type. 
|  } 
| 
|  static contextTypes = { 
|  store: PropTypes.object.isRequired 
|  }; 
@ ./~/react-redux-firebase/src/index.js 1:0-31 @ ./src/index.js @ multi ./src/index.js 


/****And there are other similar errors, all "...appropriate loader..." ***/ 

webpack.config.js

var HtmlWebpackPlugin = require('html-webpack-plugin'); 
var HTMLWebpackPluginConfig = new HtmlWebpackPlugin({ 
    template: __dirname + '/src/index.html', 
    filename: 'index.html', 
    inject: 'body' 
}); 

module.exports = { 
entry: [ 
     './src/index.js' 
     ], 

module: { 
     loaders: [ 
        {test: /\.js$/, 
        exclude: /node_modules/, 
        loader:'babel-loader'} 
       ] 
     }, 

resolve: { 
    extensions: [".js", ".jsx", ".es6"] 
}, 

output: { 
     filename: "index_bundle.js", 
     path: __dirname + '/dist' 
     }, 

plugins: [HTMLWebpackPluginConfig] 
}; 

.babelrc

{ 
    "presets": ["react", "es2015"] 
} 

index.js

/*Other Imports...*/ 
import { firebaseStateReducer } from 'react-redux-firebase'; //This is the line causing error 

ReactDOM.render(
    <Provider> 
    <App/> 
    </Provider>, 
    documeng.getElementById('app') 
) 

Antwort

0

Duble überprüfen, dass Sie alle Ihre Abhängigkeiten npm install10ed.

Dann, wenn das nicht funktioniert, versuchen Sie dies:

npm install babel-preset-es2015

und fügen Sie Ihre die eine Abfrage für es2015 nach exclude

{ 
    test: /\.js$/, 
    exclude: /node_modules/, 
    loader:'babel-loader', 
    query: { 
    presets: ['es2015'] 
    } 
} 

Wenn Sie einen bestimmten Knotenmodul aufnehmen müssen Versuchen Sie, das Quellverzeichnis und den spezifischen Knotenmodulordner, der von babel-loader analysiert werden soll, einzubeziehen. Also statt des exclude: /node_modules/, versuchen

include: [ 
    path.resolve(__dirname, "src"), 
    path.resolve(__dirname, "node_modules/react-redux-firebase") 
    ] 
+0

Ich habe sowohl ‚es2015‘ und ‚reagieren‘ auf .babelrc. Und ich tat auch, wie Sie vorgeschlagen haben, und der Fehler bleibt – BeLikeJo

+0

Ich aktualisierte meine Antwort mit einer anderen Sache, die Sie versuchen können. Ich kann sein, dass Sie Ihre "react-redux-firebase" hinzufügen müssen, anstatt alle Ihre node_modules-Ordner auszuschließen. –

+0

Vielen Dank für Ihre Kommentare. Leider habe ich versucht und trotzdem bleibt der Fehler bestehen. – BeLikeJo

Verwandte Themen