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的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

随机推荐

  1. Google Protocol Buffers和java字符串处理控制

    大多数的操作码被从夜晚复制.懒得敲. 直接在源代码和测试结果如下. serabuffer.proto档.使用下面的命令来生成java代码. protoc -I=./ --java_out=./ ser ...

  2. 在mac os下编译android -相关文章

    1. Mac OS X下编译Android源码 http://blog.csdn.net/bulreed/article/details/22783467 2.MAC OS 编译 Android源代码 ...

  3. Java二叉排序树(转)

    一.二叉排序树定义 1.二叉排序树的定义 二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree).其定义为:二叉排序树或者是空树,或者是满足如下性 ...

  4. ios pop 折叠动画

    今天写了一个很有趣的电影太,我们可以去githoub下载. 这部动画是高级写作,我参考了它.而凝视,我希望你能看的懂. 各种动画.事实上,一些不起眼的开始.我也只是摸索. 我希望有更多的交流.[   ...

  5. LCA 学习算法 (最近的共同祖先)poj 1330

    Nearest Common Ancestors Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20983   Accept ...

  6. 制作简易计算器处理过程Servlet

    CalculationServlet.java: package com.you.servlet; import java.io.IOException; import java.io.PrintWr ...

  7. 创建Material Design风格Android应用--自定义阴影和裁剪视图

    之前已经写过通过应用主题和使用ListView, CardView,应用Material Design样式,同一时候都都能够通过support library向下兼容.今天要写的阴影和视图裁剪.无法向 ...

  8. 【iOS】随机三角瓷砖布局算法

    你已经看够iOS鉴于这些默认的正方形块,整齐地显示? 本篇给出一个随机算法设计的三角布局的瓷砖和实施. 这样的规则,并提出妥协随机排列间.它看起来很凌乱,不会有一个新事物. 重点是设计和实施,以实现布 ...

  9. 非常基本的SQL 内外连接

    有些问题一直很郁闷,例如:为什么会存在大约在同一时间连接这个东西.如果外键为空,创建问题的声明时,将有一个外键约束失败. 后来,在精心研究,恩.外部连接(左连接.正确的连接). 事实上都是非常基础的东 ...

  10. 经常使用Log日志打印输出

    /** * log刊物 * @author Jenly * */ public class LogUtils { public static final String TAG = "Jenl ...