实时编辑

栏目: CSS · 发布时间: 7年前

内容简介:使用Google Chrome DevTools工作区BrowsersyncBrowserSync是基于Node.js的, 是一个Node模块, 如果您想要快速使用它,也许您需要先安装一下Node.js 安装适用于Mac OS,Windows和Linux。

方法一

使用Google Chrome DevTools

方法二

工作区Browsersync

  1. 安装 Node.js

BrowserSync是基于Node.js的, 是一个Node模块, 如果您想要快速使用它,也许您需要先安装一下Node.js 安装适用于Mac OS,Windows和Linux。

  1. 安装 BrowserSync您可以选择从Node.js的包管理(NPM)库中 安装BrowserSync。打开一个终端窗口,运行以下命令:npm install -g browser-sync您告诉包管理器下载BrowserSync文件,并在全局下安装它们,您可以在所有项目(任何目录)中使用。当然您也可以结合gulpjs或gruntjs构建 工具 来使用,在您需要构建的项目里运行下面的命令:
npm install --save-dev browser-sync
  1. 启动 BrowserSync

一个基本用途是,如果您只希望在对某个css文件进行修改后会同步到浏览器里。那么您只需要运行命令行工具,进入到该项目(目录)下,并运行相应的命令:静态网站

如果您想要监听.css文件, 您需要使用服务器模式。 BrowserSync 将启动一个小型服务器,并提供一个URL来查看您的网站。

// --files 路径是相对于运行该命令的项目(目录)

browser-sync start --server --files "css/*.css"

如果您需要监听多个类型的文件,您只需要用逗号隔开。例如我们再加入一个.html文件

// --files 路径是相对于运行该命令的项目(目录)

browser-sync start --server --files "css/ .css, .html"// 如果你的文件层级比较深,您可以考虑使用 **(表示任意目录)匹配,任意目录下任意.css 或 .html文件。

browser-sync start --server --files " / .css, /.html"

// 监听css文件

browser-sync start --server --files "css/*.css"// 监听css和html文件

browser-sync start --server --files "css/ .css, .html"动态网站

如果您已经有其他本地服务器环境 PHP 或类似的,您需要使用代理模式。 BrowserSync将通过代理URL(localhost:3000)来查看您的网站。

// 主机名可以是ip或域名

browser-sync start --proxy "主机名" "css/*.css"

在本地创建了一个PHP服务器环境,并通过绑定Browsersync.cn来访问本地服务器,使用以下命令方式,Browsersync将提供一个新的地址localhost:3000来访问Browsersync.cn,并监听其css目录下的所有css文件。

browser-sync start --proxy "Browsersync.cn" "css/*.css"

Browsersync + Gulp.js

Browsersync + Gulp.js

当您在使用gulp构建您的项目时,您只需要 require Browsersync 模块, 利用API 并进行 选项配置。 以下是一些流行项目中常见的用例, 如 谷歌的网络入门套件 和其他项目。安装^ TOP

首先,您需要安装 Browsersync 和 依赖包 Gulp 。如果你是第一次安装,那么你可以通过--save-dev命令,这将会自动在你的package.json里添加依赖,下一次再安装时,你只需要npm install

$ npm install browser-sync gulp --save-dev

然后,在您的 gulpfile.js 文件里使用它们。

var gulp = require('gulp');

var browserSync = require('browser-sync').create();

// 静态服务器

gulp.task('browser-sync', function() {

browserSync.init({

server: {

baseDir: "./"

}

});

});

// 代理

gulp.task('browser-sync', function() {

browserSync.init({

proxy: "你的域名或IP"

});

});SASS + CSS 注入^ TOP

通过流的方式创建任务流程, 这样您就可以在您的任务完成后调用reload,所有的浏览器将被告知的变化并实时更新. 因为Browsersync只在乎您的CSS在编译完成 finished 后 - 注意: gulp.dest 后调用重载。

var gulp = require('gulp');

var browserSync = require('browser-sync').create();

var sass = require('gulp-sass');

var reload = browserSync.reload;

// 静态服务器 + 监听 scss/html 文件

gulp.task('serve', ['sass'], function() {

browserSync.init({

server: "./app"

});

gulp.watch("app/scss/*.scss", ['sass']);

gulp.watch("app/*.html").on('change', reload);

});

// scss编译后的css将注入到浏览器里实现更新

gulp.task('sass', function() {

return gulp.src("app/scss/*.scss")

.pipe(sass())

.pipe(gulp.dest("app/css"))

.pipe(reload({stream: true}));

});

gulp.task('default', ['serve']);SASS & Source Maps^ TOP

如果您使用 gulp-ruby-sass 与 sourcemap: true 选项, 将会生成.map 文件. 这些文件最终会被送到下游,在 browserSync.reload() 时接收它们, 它会尝试重新加载页面 (因为它不会在DOM里发现在任何 .map 文件)。

要解决这个问题, 您可以使用 gulp-filter 包, 以确保只有 *.css 文件响应 .reload - 这样一来,您还是会得到CSS注入,而不是整个页面重载。

var gulp = require("gulp");

var sass = require("gulp-ruby-sass");

var filter = require('gulp-filter');

var browserSync = require("browser-sync").create();

// 静态服务器 + 监听 scss/html 文件

gulp.task('serve', ['sass'], function() {

browserSync.init({

server: "./app"

});

gulp.watch("app/scss/*.scss", ['sass']);

gulp.watch("app/*.html").on('change', reload);

});

gulp.task('sass', function () {

return gulp.src('scss/ */ .scss')

.pipe(sass({sourcemap: true}))

.pipe(gulp.dest('css'))// Write the CSS & Source maps

.pipe(filter(' */ .css')) // Filtering stream to only css files

.pipe(browserSync.reload({stream:true}));

});浏览器重载^ TOP

有时候,您可能只是想完全重新加载页面 (例如,处理一堆JS文件后), 但您希望在任务发生后重载。这将在 gulp 4.x.x 时变得更容易, 但现在您可以做到以下几点: (确保您 return 从您的工作流 ,以确保 browserSync.reload() 被调用在正确的时间。

// 处理完JS文件后返回流

gulp.task('js', function () {

return gulp.src('js/*js')

.pipe(browserify())

.pipe(uglify())

.pipe(gulp.dest('dist/js'));

});

// 创建一个任务确保JS任务完成之前能够继续响应// 浏览器重载

gulp.task('js-watch', ['js'], browserSync.reload);

// 使用默认任务启动Browsersync,监听JS文件

gulp.task('serve', ['js'], function () {

// 从这个项目的根目录启动服务器

browserSync({

server: {

baseDir: "./"

}

});

// 添加 browserSync.reload 到任务队列里

// 所有的浏览器重载后任务完成。

gulp.watch("js/*.js", ['js-watch']);

});手动重载^ TOP

如果流支持并不满足您的需求,您可以通过创建一个任务来手动触发重载方法。我们创建了一个sass任务,在我们修改文件后会在浏览器里注入CSS,但是当HTML文件被更改时,浏览器将会被重新加载(手动重载)。

// 使用变量引用 reload 方法var reload = browserSync.reload;

// 编译 SASS & 自动注入到浏览器

gulp.task('sass', function () {

return gulp.src('scss/styles.scss')

.pipe(sass({includePaths: ['scss']}))

.pipe(gulp.dest('css'))

.pipe(reload({stream:true}));

});

// 监听scss和html文件, 当文件发生变化后做些什么!

gulp.task('serve', ['sass'], function () {

// 从这个项目的根目录启动服务器

browserSync({

server: {

baseDir: "./"

}

});

gulp.watch("scss/*.scss", ['sass']);

gulp.watch("*.html").on("change", browserSync.reload);

});


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

构建之法(第三版)

构建之法(第三版)

邹欣 / 人民邮电出版社 / 2017-6 / 69.00元

软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是,软件工程 的技术对于投身 IT 产业的学生来说是非常重要的。作者有在世界一流软件企业 20 年的一线软件开 发经验,他在数所高校进行了多年的软件工程教学实践,总结出了在 16 周的时间内让同学们通过 “做 中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划,并得到高校师生的积极反馈。在此 ......一起来看看 《构建之法(第三版)》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具