2016-10-04 4 views
0

ReactJSをクライアント側のビューライブラリレンダリングとして使用しようとしています。また、Material-UIから多くのコンポーネントをコンポーネントとしてインポートしています。 1つの問題は、browserify(ブラウザーでモジュールを使用するため)とbabelify(JSXからJavascriptへのコンパイル)のセットアップにgulpを使用する必要があることです。 しかしReactが複数回バンドルされていると、UIの動作とスタイリングにエラーが発生することがわかりました。 this articleによると、gulpfile.jsを次のように設定しました。Gulpを使ってReactJを何度も束ねないようにするには?

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

var dependencies = [ 
    'react', 
    'react-dom', 
    'material-ui', 
    'react-tap-event-plugin' 
]; 

var scriptsCount = 0; 

gulp.task('scripts', function() { 
    bundleApp(false); 
}); 

gulp.task('deploy', function(){ 
    bundleApp(true); 
}); 

gulp.task('watch', function() { 
    gulp.watch(['./app/*.js'], ['scripts']); 
}); 

gulp.task('default', ['scripts','watch']); 

function bundleApp(isProduction) { 
    scriptsCount++; 
    var appBundler = browserify({ 
     entries: './app/app.js', 
     debug: true 
    }) 
    if (!isProduction && scriptsCount === 1){ 
    browserify({ 
     require: dependencies, 
     debug: true 
    }) 
    .bundle() 
    .on('error', gutil.log) 
    .pipe(source('vendors.js')) 
    .pipe(gulp.dest('./web/js/')); 
    } 
    if (!isProduction){ 
    dependencies.forEach(function(dep){ 
     appBundler.external(dep); 
    }) 
    } 
    appBundler 
    .transform("babelify", {presets: ["es2015", "react"]}) 
    .bundle() 
    .on('error',gutil.log) 
    .pipe(source('bundle.js')) 
    .pipe(gulp.dest('./web/js/')); 
} 

私が実行している場合:回

gulp scripts 

より、UIは、コンソール内のいくつかの問題やエラーを持っているでしょう。

私はgulpfileを修正してReactをバンドルする必要はありませんか?助けてください。

答えて

0

外部依存リストにreact-addons-transition-groupを含める必要があります。私は同じ問題に直面していた。 ここで私はそれを解決するために何をしたのですか?

  1. クリーンアップnode_modules
  2. npm install react-addons-transition-group --save
  3. npm install
  4. rm -rf node_modules実行gulp scripts

は、私はそれが役に立てば幸い。

関連する問題