React + gulp サンプル
Material Design Lite
React
React使いつつ、マテリアルデザインも使いたいなーと思って、Material Design Lite を組み合わせてみた時のメモ。
ビルドツールには gulp を使用したので、まず gulpfile.js から。
var gulp = require('gulp'); var uglify = require('gulp-uglify'); var plumber = require('gulp-plumber'); var browserify = require('browserify'); var source = require("vinyl-source-stream"); var reactify = require('reactify'); var buffer = require('vinyl-buffer'); gulp.task('dist', function(){ var bundler = browserify('./script/src/main.jsx', { debug: true }); return bundler .transform(reactify) .bundle() .pipe(plumber()) .pipe(source('build.js')) .pipe(buffer()) .pipe(uglify()) .pipe(gulp.dest('./script/dist/')); }); gulp.task('watch', function() { gulp.watch('./script/src/*.js', ['dist']); gulp.watch('./script/src/*.jsx', ['dist']); gulp.watch('./script/src/**/*.js', ['dist']); gulp.watch('./script/src/**/*.jsx', ['dist']); }); gulp.task('default', ['dist', 'watch']);
次に HTMLファイル。 body要素の最後で、ビルド後のjsファイルを読み込むようにする。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>test</title> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link href="./style/material.min.css" rel="stylesheet"> <link href="./style/style.css" rel="stylesheet"> </head> <body> <noscript>JavaScriptを有効にして下さい。</noscript> <div id="appView"></div> <script src="./script/dist/build.js"></script> </body> </html>
エントリーポイントとなる main.jsx 3行目で、Material Design LiteのJavaScriptを読み込んでいる。 6行目で読み込んでいる AppView.jsx がルートコンポーネント。
(function () { 'use strict'; var mdl = require('material-design-lite'); var React = require('react'); var ReactDOM = require('react-dom'); var AppView = require('./component/AppView.jsx'); // アプリケーション全体のコンポーネントを表示 ReactDOM.render( <AppView />, document.getElementById('appView') ); }());