2017-02-10 8 views
2

Я работаю над проектом, который объединяет реагирующие, сокращающие и firebase. реакционно-восстановительная бомба кажется удобным инструментом. Однако код не выполняется успешно. Ниже приведена ошибка, webpack.config.js, .babelrc и index.js. Благодарим за помощь заранее.реакция-редукция-firebase: «Для обработки этого типа файла вам может понадобиться соответствующий загрузчик».

Сообщение об ошибке:

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') 
) 

ответ

0

Duble проверьте, что вы npm install -если все ваши зависимости.

Тогда, если это не сработает, попробуйте следующее:

npm install babel-preset-es2015

и добавить запрос для es2015 после вашего exclude

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

Если вам необходимо включить специальный модуль узла , попробуйте включить исходный каталог и эту конкретную папку узла узла, которая будет разбираться с помощью загрузчика babel. Так вместо exclude: /node_modules/, попробовать

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

У меня есть и «es2015» и «реагировать» на .babelrc. И я также сделал то, что вы предлагали, и ошибка сохраняется – BeLikeJo

+0

Я обновил свой ответ с помощью другой вещи, которую вы можете попробовать. Возможно, вам нужно включить вашу «реакцию-редукцию-firebase», а не исключать всю вашу папку node_modules. –

+0

Благодарим вас за последующие комментарии. К сожалению, я попытался и все еще ошибка сохраняется. – BeLikeJo