2016-05-08 31 views
0

我正在尝试了解gulp,browserify和反应,并且已经敲起了一个小测试项目。在我决定在那里实现一些动画之前,这没有问题。具体来说这个:使用gulp,browserify并与插件反应

var React = require("react"); 
var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup; 

我收到一个错误,因为“React.addons”为空。

我也有这个问题,我的构建正在走一个时代 - 在20秒和一分钟之间。我认为其原因部分是因为反应本身被包含在我的包中,而我理想地希望从CDN中检索它(或者至少将它分开)。

这是我gulpfile:

var gulp = require('gulp'); 
var browserify = require('browserify'); 
var babelify = require('babelify'); 
var source = require('vinyl-source-stream'); 

gulp.task('js', function() { 
    return browserify('./public/js/app.js', { 
     debug: false, bundleExternal: true 
    }) 
    .transform(babelify, {"presets": ["es2015", "react"]}) 
    .bundle() 
    .pipe(source('app.js')) 
    .pipe(gulp.dest('./build/js/')); 
}); 

如果我设置“bundleExternal”为假,然后它停止反应,包括在我的JS - 但当时没有工作,因为“反应”未找到。我发现了一些有关browserify-shim的内容,但无法让它从一揽子中获益。并不确定这是否正确的路要走?

道歉为新手问题!

回答

0

要包括ReactCSSTransitionGroup你需要先安装它:

npm install react-addons-css-transition-group 

然后就需要它:

var ReactCSSTransitionGroup = require('react-addons-css-transition-group'); 
+0

但这解决的问题之一,谢谢。但是我的gulp构建仍然需要一分钟左右,最终的JS文件包含所有的反应。我可以排除构建过程中的反应部分吗? –