Gulp browserify livereload
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的更多相关文章
- 前端模块化开发学习之gulp&browserify篇
随着web应用的发展,前端的比重占得越来越多,编写代码从而也越来越复杂.而通常我们需要将不同功能或者不同模块的代码分开写,最后在html中一起加载,这样做是可以的,但是当你需要进行维护或者是二次开发 ...
- 基于Gulp + Browserify构建es6环境下的自动化前端项目
随着React.Angular2.Redux等前沿的前端框架越来越流行,使用webpack.gulp等工具构建前端自动化项目也随之变得越来越重要.鉴于目前业界普遍更流行使用webpack来构建es6( ...
- React+gulp+browserify模块化开发
阅读本文需要有React的基础知识,可以在React 入门实例教程和React中文官网进行基础学习. 没有React基础也可以学习本文,本文主要不是学习React,而是gulp+browserify进 ...
- gulp下livereload和webserver实现本地服务器下文件自动刷新
一.前言 node从v0.10.26升级(为了匹配autoprefixer)到v5.3.0后出现了gulp插件兼容问题,在nodejs下各种新的插件出现问题,需要重新配置.livereload实现ch ...
- Grunt Gulp Browserify Webpack
Grunt 是相比后面几个更早的项目,他依赖于各种插件的配置.这是一个很好的解决方案,但是请相信我,你不会想看到一个 300 行的 Gruntfile Gulp 提供了一个不一样的解决方案,而不是依赖 ...
- 浏览器自动刷新——基于Nodejs的Gulp LiveReload与VisualStudio完美结合。
本文版权桂博客园和作者吴双共同所有,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/6016055.html 写在前面 大家好我是博客园的蜗牛,博客园的蜗牛就是我 ...
- gulp配置browserify多入口
需要 var es = require('event-stream'); gulp.task('browserify', function(){ var files = [ { fpath: './j ...
- 如何在Gulp中提高Browserify的打包速度
使用Browserify打包js时如果项目变得越来越大,编译时间就会相应变得越来越长.使用官方的插件watchify是个比较有效的提高速度方案. 提速原理 watchify的用法和gulp的watch ...
- 前端神器!!gulp livereload实现浏览器自动刷新
首先gulp是基于Node的,所以确保你已经安装 node.js,在Nodejs官方网站下载跟自己操作系统相对应的安装包. 先说一下gulp安装流程: 1:全局安装gulp,操作为: npm inst ...
随机推荐
- Centos6.5源码编译安装nginx
1.安装pcre下载地址:http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz #tar -axvf pcre ...
- 如果不知道MySQL当前使用配置文件(my.cnf)的路径的解决方法
如果不知道当前使用的配置文件的路径,可以尝试下面的操作: # which mysqld /usr/local/mysql/bin/mysqld # /usr/local/mysql/bin/mysql ...
- css3之border-color
-moz-border-top-colors:上边框-moz-border-right-colors:右边框-moz-border-bottom-colors:下边框-moz-border-left- ...
- project euler 48 Self powers 解决乘法爆long long
题目链接 求 $ 1^1+2^2+\cdots + 1000^{1000} $ %1e10 的结果. 唯一的坑点是会爆longlong, 所以用特殊的乘法. #include <iostream ...
- Latex笔记-基本布局
转自https://linhan.blog.ustc.edu.cn/?p=135&cpage=1 目录改用中文标题并且居中 \renewcommand{\contentsname}{\cent ...
- Visual Studio 2008中控制台程序一闪而过的解决方法
VS2008中编写C/C++的程序时,调试运行,控制台窗口会在执行完毕后立即关闭,这样就无法看到运行的结果.为了解决这个问题,可以使用①system("pause"); ②getc ...
- android 环境搭建 windows, linux
android环境也搭建了很多次了,linux下window下.在这里记录下,以后再搭建设置变量啥的就直接看自己的博客就好了.电子挡笔记有时候也不方便 1.下载材料 概述:用的是比较简单的方式搭建环境 ...
- Oracle EBS-SQL (BOM-5):检查有BOM但物料状态为NEW的物料.sql
select DISTINCT msi.segment1 成品编码 ,msi.description 成品描述 ,msi.item_type 物料类型 ,msi.invent ...
- Java pipeline
http://cullenprogramming.homelinux.com/PIPEuserguide.htm http://www.cise.ufl.edu/research/ParallelPa ...
- JavaEE Tutorials (19) - Web应用安全入门
19.1Web应用安全概述29519.2保护Web应用安全296 19.2.1指定安全约束297 19.2.2指定认证机制300 19.2.3在部署描述文件中指定认证机制302 19.2.4声明安全角 ...