2016-11-17 30 views
1

我的.jsx文件中有以下代碼。在jsx中加載花括號的jsx文件時出錯

var React = require('react'), 
    ReactDOM = require('react-dom'); 
module.exports = React.createClass({ 
    render: function() { 
     var classes = {container: 'test'}; 
     return (<div className={classes.container}></div>) 
    } 
}); 

我使用下列程序的配置中的WebPack-DEV-服務器JSX文件

loaders: [{ 
      test: /\.jsx?$/, 
      loaders: ['react-hot', 'babel?presets[]=es2015,presets[]=react'], 
      exclude: /node_modules/ 
      },{ 
      test: /\.jsx?$/, 
      loader: 'string-replace', 
      query: jsRepQuery, 
      exclude: /node_modules/ 
      }] 

我收到以下錯誤。

ERROR in ./~/test.jsx 
Module parse failed: /test.jsx Unexpected token (20:23) 
You may need an appropriate loader to handle this file type. 
SyntaxError: Unexpected token (20:23) 

基本上錯誤的位置(20:23)是大括號{。我是否需要使用其他裝載機?

更新:失敗的解析器文件在node_modules文件夾中。由於它被排除在外,看起來像我們正在得到這個錯誤。但是,我不希望所有的node_modules被執行。我如何才能從排除列表中排除此node_module?

回答

1

我已經添加了另一個加載程序來接受只需要node_module通過使用以下。

loaders: [{ 
      test: /\.jsx?$/, 
      loaders: ['react-hot', 'babel?presets[]=es2015,presets[]=react'], 
      exclude: /node_modules/ 
      },{ 
      test: /\.jsx?$/, 
      loader: 'string-replace', 
      query: jsRepQuery, 
      exclude: /node_modules/ 
      },{ 
       test: /\.jsx?$/, 
       loaders: ['react-hot', 'babel?presets[]=es2015,presets[]=react'], 
       include: function(absPath) { 
       if(absPath.indexOf('/node_modules/orb/') > -1) { 
       return true; 
       } else { 
        return false; 
       } 
      } 
      }]