diff --git a/gulpfile.js b/gulpfile.js index 4ae32af..2f0b838 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,14 +1,7 @@ var gulp = require('gulp') -var source = require('vinyl-source-stream') -var buffer = require('vinyl-buffer') -var minifyCss = require('gulp-minify-css') -var browserify = require('browserify') -var uglify = require('gulp-uglify') +var webpack = require('webpack-stream') var clean = require('gulp-clean') -var exorcist = require('exorcist') var connect = require('gulp-connect') -var watchify = require('watchify') -var util = require('gulp-util') var ghPages = require('gulp-gh-pages') var config = { @@ -22,64 +15,21 @@ var config = { dest: 'webapp/dist/' } -gulp.task('css',function(){ - gulp.src(config.files.css) - .pipe(minifyCss()) - .pipe(gulp.dest(config.dest)) - .pipe(connect.reload()) +gulp.task('watch',function(){ + var cfg = require('./webpack.config.js') + cfg.watch = true + return gulp.src(config.files.mainJs) + .pipe(webpack(cfg)) + .pipe(gulp.dest(config.dest)) + .pipe(connect.reload()) }) -gulp.task('html',function(){ - return gulp.src(config.files.html) - .pipe(gulp.dest(config.dest)) - .pipe(connect.reload()) +gulp.task('build',function(){ + return gulp.src(config.files.mainJs) + .pipe(webpack(require('./webpack.config.js'))) + .pipe(gulp.dest(config.dest)) }) -gulp.task('js-watch',function(){ - var b = getBrowserify() - b.on('log',function(l){ - util.log(l) - }) - b.on('error',function(error){ - util.log(error) - }) - b.on('update', function(){ - util.log('Rebundling') - applyBrowserify(b) - }) - return applyBrowserify(b) -}) - -gulp.task('js',function(){ - return applyBrowserify(getBrowserify()) -}) - -function getBrowserify(){ - return browserify(config.files.mainJs, { - cache: {}, - packageCache: {}, - plugin: [watchify], - //fullPaths: true, - debug: true }) - .transform('babelify', { - global: true, - presets: [ 'es2015', 'react' ], - ignore: /buffer|EventEmitter/ - }) - .transform('eslintify') - .transform({ global: true },'uglifyify') -} - -function applyBrowserify(b){ - return b.bundle() - .pipe(exorcist(__dirname+'/webapp/dist/app.js.map')) - .on('error', console.error.bind(console)) - .pipe(source('app.js')) - .pipe(buffer()) - .pipe(gulp.dest(config.dest)) - .pipe(connect.reload()) -} - gulp.task('clean',function(){ return gulp.src(config.dest, { read: false }).pipe(clean()) }) @@ -92,17 +42,11 @@ gulp.task('server',function(){ }) }) -gulp.task('watch',['js-watch'],function(){ - //gulp.watch([config.files.jsLibs,config.files.mainJs],['js-watch']) - gulp.watch(config.files.html,['html']) - gulp.watch(config.files.css,['css']) -}) - -gulp.task('gh-pages',[ 'html', 'css', 'js' ],function(){ +gulp.task('gh-pages',[ 'build' ],function(){ gulp.src([config.dest+'*.js',config.dest+'*.css',config.dest+'*.html']) .pipe(ghPages()) }) -gulp.task('serve', [ 'html', 'css', 'watch', 'server' ]) +gulp.task('serve', [ 'watch', 'server' ]) -gulp.task('default', [ 'html', 'css', 'js' ]) +gulp.task('default', [ 'build' ]) diff --git a/package.json b/package.json index d1390a2..956ad22 100644 --- a/package.json +++ b/package.json @@ -20,34 +20,32 @@ "author": "Enrico Fasoli (fazo96)", "license": "MIT", "dependencies": { + "babel-core": "~6.2.1", + "babel-loader": "~6.2.0", "babel-preset-es2015": "~6.1.18", "babel-preset-react": "~6.1.18", - "babelify": "~7.2.0", - "browserify": "~12.0.1", "commander": "~2.9.0", + "css-loader": "~0.23.0", "eslint": "~1.9.0", "eslint-plugin-react": "~3.9.0", - "eslintify": "~0.0.3", - "exorcist": "~0.4.0", + "file-loader": "^0.8.4", + "font-awesome": "^4.4.0", "gulp": "~3.9.0", "gulp-clean": "~0.3.1", "gulp-connect": "~2.2.0", - "gulp-gh-pages": "^0.5.4", - "gulp-minify-css": "~1.2.1", - "gulp-uglify": "~1.5.1", - "gulp-util": "~3.0.7", + "gulp-gh-pages": "~0.5.4", "history": "~1.13.1", "ipfs-api": "~2.9.0", + "json-loader": "~0.5.3", "lodash.sortedindex": "~3.1.1", "moment": "~2.10.6", "react": "~0.14.2", "react-dom": "~0.14.2", "react-markdown": "~1.0.5", "react-router": "~1.0.0", - "uglifyify": "~3.0.1", - "vinyl-buffer": "~1.0.0", - "vinyl-source-stream": "~1.1.0", - "watchify": "~3.6.1", + "style-loader": "~0.13.0", + "webpack": "~1.12.6", + "webpack-stream": "~2.1.1", "wolfy87-eventemitter": "~4.3.0" } } diff --git a/webapp/app.jsx b/webapp/app.jsx index 71770f5..d7c99b3 100644 --- a/webapp/app.jsx +++ b/webapp/app.jsx @@ -9,7 +9,13 @@ var Link = require('react-router').Link var MarkdownLib = require('react-markdown') var moment = require('moment') var sortedIndex = require('lodash.sortedindex') -var BoardsAPI = require('../lib/boards-api.js') +var BoardsAPI = require('boards-api.js') + +// Load CSS +require('normalize.css') +require('skeleton.css') +require('style.css') +require('font-awesome.min.css') var opt, s = localStorage.getItem('ipfs-boards-settings') try { diff --git a/webapp/index.html b/webapp/index.html deleted file mode 100644 index aaddaf1..0000000 --- a/webapp/index.html +++ /dev/null @@ -1,19 +0,0 @@ - -
-