我只是在玩React,并使用grunt和grunt-browserify建立了一个基本的设置,但是我得到了一个解析错误。有人知道解决办法吗?附带注意--当我不使用react/jsx时,任务运行良好。
有一个基本组成部分:
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'
]
}
}
},发布于 2015-04-04 15:53:12
HelloWorld类是jsx,所以grunt-browserify需要使用transform选项将js转换为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
}
}
}https://github.com/ericclemmons/grunt-react#recommended-usage
希望这能有所帮助。
发布于 2015-04-04 15:57:59
我没有同意Dhiraj的回答,但这导致我使用了reactify。
browserify: {
options: {
transform: ['reactify'],
extensions: ['.jsx'],
debug: true
},
dist: {
files: {
'public/javascripts/app.js' :
[
'assets/javascripts/components/**/*.jsx',
'assets/javascripts/app.jsx'
]
}
}
},https://stackoverflow.com/questions/29448077
复制相似问题