我之前看过这种“破坏”语法,但从未使用过它。到现在为止。我想在github上引入一个react-router repo来处理我的应用程序路由(制作单页应用程序)。但我注意到它有这种语法
var { Route, RouteHandler, Link } = Router;
这只是一种奇特的写作方式
var Route = Router.Route
var RouteHandler = Router.RouteHandler
var Link = Router.Link
所以我的问题是,是否有人知道gulp是否会有任何问题从jsx编译到javascript? 我是否需要为此语法安装任何其他依赖项? 我做了一些研究,但找不到任何结论。感谢
答案 0 :(得分:1)
默认gulp,是的。需要将JSX语法转换为本机js。看看gulp-react,看看你如何处理这个问题。基本上,它与其他转换代码(即coffeescript)的概念类似。在汇总到下一个任务之前转换为原生。
编辑
看到你进行编辑后,看起来你还需要转换ES6。看看react browserify,它应该有助于你前进。基本上概念是相同的,将jsx / es6编译为本机js。有一个特定于ES6反应组分的部分。
第二次编辑 看起来gulp-react有一个设置为ES6的选项。我想如果你添加这一行,它会起作用。
.pipe(react({harmony: true}))
//full example
gulp.task('default', function () {
return gulp.src('template.jsx')
.pipe(react({harmony: true))
.pipe(gulp.dest('dist'));
});