2015-04-04 29 views
0

我只是在用React進行週轉,並且使用grunt和grunt-browserify進行基本設置,但是出現了一個解析錯誤。任何人都知道這個解決方案?附註 - 當我不使用react/jsx時,任務運行良好。在React組件上運行grunt-browserify時出現解析錯誤

有了一個基本組成部分:

var HelloWorld = React.createClass({ 
    render: function(){ 
    return (
     <div> 
     Hello World! 
     </div> 
    ) 
    } 
}); 

React.render(<HelloWorld />, document.getElementById('app')); 

我得到這個錯誤:

>> File "assets/javascripts/app.js" changed. 
Running "browserify:dist" (browserify) task 
>> /Users/username/www/reactor/assets/javascripts/app.js:4 
>>  <div> 
>>  ^
>> ParseError: Unexpected token 
Warning: Error running grunt-browserify. Use --force to continue. 

,這裏是繁重的任務:

browserify: { 
     dist: { 
     files: { 
      'public/javascripts/app.js' : 
      [ 
      'assets/javascripts/components/**/*.js', 
      'assets/javascripts/app.js' 
      ] 
     } 
     } 
    }, 
+0

你也可以添加'grunt browserify'任務代碼嗎? – Dhiraj 2015-04-04 15:33:56

+0

在@DhirajBodicherla中添加它 – Ben 2015-04-04 15:48:05

回答

-1

HelloWorld類是jsx如此grunt- browserify需要使用轉換選項將jsx轉換爲js。

browserify: { 
    dist: { 
    options: { 
     transform: [ require('grunt-react').browserify ] // <-- this one 
    }, 
    client: { 
     src: [assets/javascripts/components/**/*.js, assets/javascripts/app.js], // sources files 
     dest: 'public/javascripts/app.js' // output file 
    } 
    } 
} 

Here is a reference

希望這有助於。

1

我沒有去Dhiraj的答案,但這導致我使用reatify。

browserify: { 
    options: { 
    transform: ['reactify'], 
    extensions: ['.jsx'], 
    debug: true 
    }, 
    dist: { 
    files: { 
     'public/javascripts/app.js' : 
     [ 
     'assets/javascripts/components/**/*.jsx', 
     'assets/javascripts/app.jsx' 
     ] 
    } 
    } 
}, 
+0

或者,如果您想要es6轉換(也支持jsx),也可以使用'babelify'。反應速度更快。 – FakeRainBrigand 2015-04-05 10:01:18

相關問題