学习笔记 broswerify + watchify + beefy
broswerify
“Browserify lets you require('modules') in the browser by bundling up all of your dependencies.”
Browserify 可以让你在浏览器中通过 require('modules') 的写法加载依赖的模块。
浏览器本身不支持 require 和 define 的模块化开发,但是 nodejs 支持。使用 broswerify,就可以让浏览器支持和 nodejs 一样的开发方式。(这里不讨论 CMD 和 AMD)
首先是安装
$npm install broswerify --save-dev
编写一段 nodejs 脚本
//main.js
var unique = require('uniq');
var data = [1, 2, 2, 3, 4, 5, 5, 5, 6];
console.log(unique(data));
uniq 是 nodejs 的一个模块
在 nodejs 环境中安装 uniq 模块
$npm install uniq --save-dev
现在可以测试下这段脚本在 nodejs 下的效果
$node main.js
//[ 0, 1, 2, 3, 4, 5 ]
之后就可以通过 broswerify 生成 budle.js:
$browserify main.js > bundle.js
在 html 中加载生成的 js 脚本,
<script src="./bundle.js"></script>
就能在浏览器中运行刚才的结果。
watchify
和 broswerify 组队的自动对文件修改做出响应的工具
// 安装
$npm install watchify --save-dev // 监听当前目录文件状态,代替执行了 broswerify main.js > bundle.js
$watchify main.js > bundle.js // -d debug 模式,会生成 sourceMap
// =v 输出日志
$watchify main.js > bundle.js -d -v // -o --outfile
$ watchify browser.js -d -o static/bundle.js -v // -o 也可以执行语句
watchify main.js -o 'exorcist static/bundle.js.map > static/bundle.js' -d
Beefy
官方推荐的基于 broswerify 和 watchify 开发的快捷启动服务的插件。
// 安装
$npm install beefy // 在127.0.0.1:9966启动一个 node 的服务,当通过这个服务访问 main.js 这个文件时,自动 bundle 并加载,参数-l 表示启用 liveloader
$beefy main.js -l
//> browserfy@1.0.0 start /your/path
//> beefy main.js -l
//
//beefy (v2.1.5) is listening on http://127.0.0.1:9966
实际使用中发现一个 bug,保存时自动加载的页面的 Js经常是上一次保存的内容。
看了源码后发现原来刷新页面和启动 broswerify 用的是两个文件监听,有个不太完美的解决方法就是:
修改文件 node_modules/beefy/lib/frontend-js/live-reload.js
window.location.reload();
setTimeout(function(){window.location.reload()}, 200);
学习笔记 broswerify + watchify + beefy的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
随机推荐
- Scala Hello 示例
object ScalaDemo1 { def main(args: Array[String]) { println("Hello,world!"); } }
- 二分图行列匹配---> hdu2119,hdu1498
hdu2119 题意:给定一个矩形方格,每个格子里面的数字是0或者1,每次操作可以把一整行或列的1变成0,问最少多少次操作能将1全部变为0 一次可以消除某一行或者某一列的1但是可以这么想,最多有多少个 ...
- Web中的性能优化
优化Web中的性能 简介 web的优化就是一场阻止http请求最终访问到数据库的战争.优化的方式就是加缓存,在各个节点加缓存. web请求的流程及节点 熟悉流程及节点,才能定位性能的问题.而且优化的顺 ...
- 前台技术--通过javaScript提交表单
window.location=pp+"?username="+getCookie("username")+"&userid="+g ...
- NETSH WINSOCK RESET这个命令的意义和效果?
简要地netsh winsock reset命令含义复位 Winsock 文件夹.一机多用的假设Winsock协议配置问题,那么问题会导致网络连接,我们需要使用netsh winsock reset命 ...
- BrowserSync使用
在Gulp中使用BrowserSync 2016-02-24 23:47 by 那时候的我, 116 阅读, 0 评论, 收藏, 编辑 博客已迁移至http://lwzhang.github.io. ...
- Android TextView里直接显示图片的三种方法
方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般假设字体是在图片上重叠的推荐这样写.时间关系,这个不付源代码了. 方法二:利用Tex ...
- 【Web探索之旅】第二部分第三课:框架和内容管理系统
内容简介 1.第二部分第三课:框架和内容管理系统 2.第二部分第四课预告:数据库 第二部分第三课:框架和内容管理系统 上一课我们介绍了服务器端的编程语言,有PHP,Java,Python,Ruby ...
- MongoDB时间处理问题
MongoDB保存到数据库的时候,默认为UTC时间,在数据库保存时,会和当前时间有个间隔,差距为8小时. 在读取的时候,需要再次转换回来,比较麻烦. 其实,Mongo本身就已经提供了相应的处理方法,即 ...
- 构建安全的Xml Web Service系列之wse之错误代码详解
原文:构建安全的Xml Web Service系列之wse之错误代码详解 WSE3.0现在还没有中文版的可以下载,使用英文版的过程中,难免会遇到各种各样的错误,而面对一堆毫无头绪的错误异常,常常会感到 ...
