Gulp browserify livereload

之前在browserify那个博文中介绍了gulp + browserify

不过那个配置还不能满足日常需要

搬运

https://github.com/Hyra/angular-gulp-browserify-livereload-boilerplate/blob/master/Gulpfile.js#L67

'use strict';

var gulp = require('gulp'),
jshint = require('gulp-jshint'),
browserify = require('gulp-browserify'),
concat = require('gulp-concat'),
rimraf = require('gulp-rimraf'),
sourcemaps = require('gulp-sourcemaps'),
sass = require('gulp-sass'),//之前要安装node-sass
rsass = require('gulp-ruby-sass'), //之后还是建议安装这个 体积小 安装出错几率小
minifycss = require('gulp-minify-css'),
autoprefixer = require('gulp-autoprefixer'); // Modules for webserver and livereload
var express = require('express'),
refresh = require('gulp-livereload'),
livereload = require('connect-livereload'),
livereloadport = 35729,
serverport = 5000; // Set up an express server (not starting it yet)
var server = express();
// Add live reload
server.use(livereload({port: livereloadport}));
// Use our 'dist' folder as rootfolder
server.use(express.static('./dist'));
// Because I like HTML5 pushstate .. this redirects everything back to our index.html
server.all('/*', function(req, res) {
res.sendfile('index.html', { root: 'dist' });
}); // Dev task
gulp.task('dev', [ 'views', 'rstyles', 'lint', 'browserify'], function() { }); // Clean task
gulp.task('clean', function() {
gulp.src('./dist/views', { read: false }) // much faster
.pipe(rimraf({force: true}));
}); // JSHint task
gulp.task('lint', function() {
gulp.src('app/scripts/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
}); // Styles task
gulp.task('styles', function() {
gulp.src('app/styles/main.scss')
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(autoprefixer('last 4 versions', '> 1%', 'ie 8'))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('dist/css/')); //copy img and font
gulp.src('app/styles/imgs/*.*')
.pipe(gulp.dest('dist/css/imgs'));
gulp.src('app/styles/fonts/*.*')
.pipe(gulp.dest('dist/css/fonts'));
}); gulp.task('rstyles', function() { rsass('app/styles/main.scss',{ sourcemap: true })
.on('error', sass.logError)
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(minifycss()) // For inline sourcemaps
.pipe(sourcemaps.write()) // For file sourcemaps
.pipe(sourcemaps.write('maps', {
includeContent: false,
sourceRoot: 'app/styles'
})) .pipe(gulp.dest('dist/css')); //copy img and font
gulp.src('app/styles/imgs/*.*')
.pipe(gulp.dest('dist/css/imgs'));
gulp.src('app/styles/fonts/*.*')
.pipe(gulp.dest('dist/css/fonts'));
}); // Browserify task
gulp.task('browserify', function() {
// Single point of entry (make sure not to src ALL your files, browserify will figure it out)
gulp.src(['app/scripts/main.js'])
.pipe(browserify({
insertGlobals: true,
debug: true
}))
// Bundle to a single file
.pipe(concat('compiled.js'))
// Output it to our dist folder
.pipe(gulp.dest('dist/js/'));
}); // Views task
gulp.task('views', function() {
// Get our index.html
gulp.src('app/index.html')
// And put it in the dist folder
.pipe(gulp.dest('dist/')); // Any other view files from app/views
gulp.src('app/views/*')
// Will be put in the dist/views folder
.pipe(gulp.dest('dist/views'));
}); // Task with deps
// deps
// Type: Array
// An array of tasks to be executed and completed before your task will run. gulp.task('watch', ['lint'], function() {
// Start webserver
server.listen(serverport);
// Start live reload
refresh.listen(livereloadport); // Watch our scripts, and when they change run lint and browserify
//任意目录下的js 'app/scripts/**/*.js'
gulp.watch(['app/scripts/*.js'],[
'lint',
'browserify'
]);
// Watch our sass files
gulp.watch(['app/styles/*.scss','app/styles/**/*'], [
'rstyles'
]); gulp.watch(['app/**/*.html'], [
'views'
]); gulp.watch('./dist/**').on('change', refresh.changed); }); gulp.task('default', ['dev', 'watch']);

Gulp browserify livereload的更多相关文章

  1. 前端模块化开发学习之gulp&browserify篇

     随着web应用的发展,前端的比重占得越来越多,编写代码从而也越来越复杂.而通常我们需要将不同功能或者不同模块的代码分开写,最后在html中一起加载,这样做是可以的,但是当你需要进行维护或者是二次开发 ...

  2. 基于Gulp + Browserify构建es6环境下的自动化前端项目

    随着React.Angular2.Redux等前沿的前端框架越来越流行,使用webpack.gulp等工具构建前端自动化项目也随之变得越来越重要.鉴于目前业界普遍更流行使用webpack来构建es6( ...

  3. React+gulp+browserify模块化开发

    阅读本文需要有React的基础知识,可以在React 入门实例教程和React中文官网进行基础学习. 没有React基础也可以学习本文,本文主要不是学习React,而是gulp+browserify进 ...

  4. gulp下livereload和webserver实现本地服务器下文件自动刷新

    一.前言 node从v0.10.26升级(为了匹配autoprefixer)到v5.3.0后出现了gulp插件兼容问题,在nodejs下各种新的插件出现问题,需要重新配置.livereload实现ch ...

  5. Grunt Gulp Browserify Webpack

    Grunt 是相比后面几个更早的项目,他依赖于各种插件的配置.这是一个很好的解决方案,但是请相信我,你不会想看到一个 300 行的 Gruntfile Gulp 提供了一个不一样的解决方案,而不是依赖 ...

  6. 浏览器自动刷新——基于Nodejs的Gulp LiveReload与VisualStudio完美结合。

    本文版权桂博客园和作者吴双共同所有,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/6016055.html 写在前面 大家好我是博客园的蜗牛,博客园的蜗牛就是我 ...

  7. gulp配置browserify多入口

    需要 var es = require('event-stream'); gulp.task('browserify', function(){ var files = [ { fpath: './j ...

  8. 如何在Gulp中提高Browserify的打包速度

    使用Browserify打包js时如果项目变得越来越大,编译时间就会相应变得越来越长.使用官方的插件watchify是个比较有效的提高速度方案. 提速原理 watchify的用法和gulp的watch ...

  9. 前端神器!!gulp livereload实现浏览器自动刷新

    首先gulp是基于Node的,所以确保你已经安装 node.js,在Nodejs官方网站下载跟自己操作系统相对应的安装包. 先说一下gulp安装流程: 1:全局安装gulp,操作为: npm inst ...

随机推荐

  1. Neo4j简介

    Neo4j简介 发表于2013年3月16日 11:52 p.m.    位于分类图数据库与图并行计算 现实中很多数据都是用图来表达的,比如社交网络中人与人的关系.地图数据.或是基因信息等等.RDBMS ...

  2. Mac浏览器全屏设置

    在 mac 升级之后,以往点击放大的按钮,现在显示的效果是全屏:

  3. 显示GetLastError()的错误描述字符串

    void ShowLastError() { LPVOID lpMsgBuf; FormatMessage ( FORMAT_MESSAGE_ALLOCATE_BUFFER | //返回一个已分配的内 ...

  4. 如何在Eclipse中开发并调试自己的插件(或者说如何将自己的代码插件化)

    Setting up Eclipse to create and debug plugins for ImageJ 最近在做一个关于卫星遥感全链路仿真的项目,由于项目是基于ImageJ开发,而Imag ...

  5. git 克隆本地仓库

    如果要从本地仓库克隆到另一个地方使用如下命令 git clone d:/SourceRepository d:/DestinationRepository d:/SourceRepository:本地 ...

  6. java 多线程学习(一)

    public class ThreadA extends Thread { ; public ThreadA() { super("ThreadID:" + (++threadID ...

  7. JVM学习之内存分配一

    转自:http://blog.csdn.net/mazhimazh/article/details/16879055,多谢博主分享 我们知道计算机的基本构成是:运算器.控制器.存储器.输入和输出设备, ...

  8. 关于Centos Linux系统安装Python的问题

    由于最近在研究Python框架Django的使用,安装django扩展没有问题 新建项目  django-admin startproject projectName  如果什么都不修改或者直接创建一 ...

  9. ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据

    前端HTML+JQuery  备注Jquery需要1.x版本,不能用2.x版本 1.引入必要文件及上传input <load file="__PUBLIC__/js/jquery-1. ...

  10. Oracle GoldenGate学习之Goldengate介绍

    Oracle GoldenGate学习之Goldengate介绍 (2012-10-02 17:07:27) 标签: 检查点 数据传输 队列 进程 分类: Goldengate Goldengate介 ...