2016-10-06 2 views
0

webpackdevserverのgulpをどのように再読み込みできますか?私は一息でlivereloadするwebpackdevserverを聞かせしようとしています

gulp.task('watch', function() { 
    gulp.watch(path.ALL, ['sass', 'webpack-dev-server', 'watch']); 
}); 

は、これが私のwebpack.config.jsです:

module.exports = { 
    entry: "./app/app.js", 
    output: { 
     path: path.resolve(__dirname, "build"), 
     publicPath: "/dist/", 
     filename: "foss.js", 
     sourceMapFilename: "foss.map" 
    }, 
    devtool: '#source-map', 
    module: { 
     loaders: [{ 
      loader: 'babel', 
      exclude: /node_modules/ 
     }] 
    }, 
    devServer: { inline: true } 

} 

は、どのように私はそれをlivereload作るためにゴクゴクまたはWebPACKの変更できますか?

+0

ウェブパックを使用しているので、本当にガルプが必要ですか? 'webpack-dev-server --progress --display-error-details-colors-hot --inline'として実行することで、リロードすることができます。--hot --inlineフラグが勝者です。しかし、私は、あなたがぐったりとしている間に別の複雑な層を包み込むときに、あなたが何をするか分かりません。 – Gimby

+0

私はsassコンパイラも使用しているので、gulpを使用しています。 –

答えて

2

プロジェクトディレクトリにgulpfile.jsという新しいファイルを作成します。

"use strict"; 

var gulp = require('gulp'); 
var connect = require('gulp-connect'); //Runs a local dev server 
var open = require('gulp-open'); //Open a URL in a web browser 
var browserify = require('browserify'); // Bundles JS 
var reactify = require('reactify'); // Transforms React JSX to JS 
var source = require('vinyl-source-stream'); // Use conventional text streams with Gulp 
var concat = require('gulp-concat'); //Concatenates files 
// var lint = require('gulp-eslint'); //Lint JS files, including JSX 
var babelify = require('babelify'); // support for es6 

var config = { 
port: 9005, 
devBaseUrl: 'http://localhost', 
paths: { 
    html: './src/*.html', 
    js: './src/**/*.js', 
    images: './src/images/*', 
    css: [ 
     'node_modules/bootstrap/dist/css/bootstrap.min.css', 
     'node_modules/bootstrap/dist/css/bootstrap-theme.min.css', 
       './src/css/*.css' 
      ], 
    dist: './dist', 
    mainJs: './src/main.js' 
} 
} 

//Start a local development server 
gulp.task('connect', function() { 
connect.server({ 
    root: ['dist'], 
    port: config.port, 
    base: config.devBaseUrl, 
    livereload: true 
}); 
}); 

gulp.task('open', ['connect'], function() { 
gulp.src('dist/index.html') 
    .pipe(open('', { url: config.devBaseUrl + ':' + config.port + '/'})); 
}); 

gulp.task('html', function() { 
gulp.src(config.paths.html) 
    .pipe(gulp.dest(config.paths.dist)) 
    .pipe(connect.reload()); 
}); 

gulp.task('js', function() { 
browserify(config.paths.mainJs) 

    .transform(reactify) 
    .bundle() 
    .on('error', console.error.bind(console)) 
    .pipe(source('bundle.js')) 
    .pipe(gulp.dest(config.paths.dist + '/scripts')) 
    .pipe(connect.reload()); 
}); 

gulp.task('css', function() { 
gulp.src(config.paths.css) 
    .pipe(concat('bundle.css')) 
    .pipe(gulp.dest(config.paths.dist + '/css')); 
}); 

// Migrates images to dist folder 
// Note that I could even optimize my images here 
gulp.task('images', function() { 
gulp.src(config.paths.images) 
    .pipe(gulp.dest(config.paths.dist + '/images')) 
    .pipe(connect.reload()); 

//publish favicon 
gulp.src('./src/favicon.ico') 
    .pipe(gulp.dest(config.paths.dist)); 
}); 

// gulp.task('lint', function() { 
// return gulp.src(config.paths.js) 
//  .pipe(lint({config: 'eslint.config.json'})) 
//  .pipe(lint.format()); 
// }); 

gulp.task('watch', function() { 
gulp.watch(config.paths.html, ['html']); 
gulp.watch(config.paths.js, ['js']); 
gulp.watch(config.paths.css, ['css']); 
}); 

gulp.task('default', ['html', 'js', 'css', 'images', 'open', 'watch']); 

このファイルを使用してプロジェクトを再読み込みします。 詳細については、このレポをご確認ください:https://github.com/tarangdave/react-starter

関連する問題