当npm遇上browserify

npmnodejs包管理工具,提供了模块的发布以及下载功能,与bower不同的是,模块文件保存在npm平台上面

browserifynpm在前端项目里延伸的神器,有了它之后,前后端可以共用一个commonjs规范的模块

关于各种包管理之前的比较,可以参考知乎上面的一个问题,bower,spm,npm


安装 npm & browserify

npm基本上安装nodejs的时候就会自动安装

安装browserify

npm install -g browserify

因为这是命令行使用的,所以推荐使用-g参数

使用 browserify

  • 首先定义一个commonjs规范的模块,功能比较简单,名为app.js

var app = {
    get: function(){
        return 'feenan!';
    }
}

// 此处对外导出模块功能

module.exports = app;

然后我们来定义一个使用这个模块的文件,名为main.js

// 此处引用模块跟`nodejs`里一样
var app = require('./app.js')

var p = document.createElement('p');
p.textContent = app.get(); // -> 'feenan'
document.body.appendChild(p);

到了这里也许大家就会怀疑,前端浏览器里根本就没有require,module的定义,上面的文件应该会报错吧,没错,假如直接在html文件里引用上面的js文件的话,肯定会报错,现在是browserify出马的时候了

执行一条非常简单的命令就OK了

browserify main.js > bundle.js

上面的bundle.js可以自定义别的名字,最后我们只需要把这个新生成的文件引入到html文件内即可,不用再引入别的文件

<!doctype html>
<html>
<head>
    <title>browserify demo</title>
    <meta charset="utf8">
</head>
<body>

    <script src="js/bundle.js"></script>
</body>
</html>

最后在chrome里打开这个页面将会输出feenan的字样,是不是感觉很棒,确实,上面的app.js文件也可以拿到nodejs里去引用,因为它遵守commonjs规范

自动执行命令 watchify

当每次修改文件,然后执行上面的命令,这个过程其实是比较浪费时间的,幸运的时,browserify社区提供了一个工具watchify,先来安装它吧

npm install -g watchify

然后在命令行里使用它

watchify main.js -o bundle.js

这样当你每次修改main.js之后,就会自动生成转后的入口文件,有兴趣想研究browserify原理的,可以直接看看生成之后的js文件

想了解更多的使用方法以及原理的可以点击下面的文件 * browserify * watchify

总结

npmbrowserify的结合使用,将会有效的利用模块重用,对提高工作效率有很大的帮助.最后说下chrome 36发布了,听说对web 组件规范又支持了不少.

时间: 2024-08-02 22:19:13

当npm遇上browserify的相关文章

当 App Store 遇上电视,开发者的第四代 Apple TV 开箱体验

当 App Store 遇上电视,开发者的第四代 Apple TV 开箱体验 引子 2015 年 9 月,San Francisco.今年接近 100 华氏度的气温要比往年都更热,而 Apple 例行的秋季发布会也如期在这里举行.自从 iPhone 一战成名后,每年的 iPhone 旗舰机型都是移动通讯设备的业界标杆.而今年秋季发布会大家也自然地将重点放在了最新的 iPhone 6s 上.手机乏善可陈,除了硬件参数的一些常规升级外,我们并没有看到 iPhone 有多大进步.不过这也是大家预料之中

当草根站长遇上品牌运营公司时

笔者最近在优化一个汽车车位锁网站,关键词竞争度倒是不大,当笔者一查几个竞争对手时,发现除了有几个厂家外,居然还有一个品牌运营公司.当草根站长遇上团队作战,经验丰富的品牌运营公司时,笔者是如下分析与制定计划的. 一.网站整体分析 遇上车位锁品牌运营公司,笔者觉得分析网站不能只分析简单的seo数据.应该从网站设计与布局,流量导入,口碑营销与社会化营销等诸多分析. 1.网站结构与设计 该品牌运营公司的网站结构简单,设计简洁大气,也符合该公司定位中高端车位地锁用户.实际上,笔者公司也曾请人模仿了该站,但

快速浏览Silverlight3 Beta:当HLSL遇上Silverlight

HLSL高级着色器语言(High Level Shader Language,简称HLSL),由微软拥有及开发的一种语言,只能供微软的Direct3D使用. HLSL是微软抗衡GLSL的产品,同 时不能与OpenGL标准兼容.他跟Nvidia的Cg非常相似. 看了上面的几行话,可能大家还不是很清楚这个东西与当前的Silverlight的关系.其实在园子里的兄弟发过这篇文章,介绍"silverlight3滤镜效果". 而其在源码中所使用的.ps文件(注:这里不是powershell呀),

transport-使用ffmpeg遇上了问题,都搞了好几天了还是不能解决

问题描述 使用ffmpeg遇上了问题,都搞了好几天了还是不能解决 有个问题想请教一下,就是我使用ffmpeg命令获取rtsp流,然后转换成rtmp再播放,我使用的命令:ffmpeg -rtsp_transport tcp -i rtsp://218.204.223.237:554/live/1/0547424F573B085C/gsfp90ef4k0a6iap.sdp -f flv -r 25 -s 640x480 -an rtmp://localhost/myapp/stream1.但有错误:

当搜索引擎营销遇上SaaS(软件即服务)

本文讲的是当搜索引擎营销遇上SaaS(软件即服务),[IT168 资讯]互联网创造若干个神话,也造就无数的网络英雄,随着Web2.0应用的不断深入,销售人员的触脚已经延展到互联网的各个角落,就拿刚刚成立四年的网上提供高端步行和野营装备的Backcountry Edge公司而言,绝对不会放过任何一个营销机会,于是Clickable公司在去年推出新的软件即服务(SaaS)时,该公司马上报名参加测试该服务以求觅得销售良机. Clickable的服务宗旨是在搜索引擎营销的复杂性和乏味性上做减法,让用户能

金融和互联网好像北京遇上西雅图

本文讲的是金融和互联网好像北京遇上西雅图,中国工商银行电子银行部总经理侯本旗表示,金融和互联网好像不太一样,"金融长这样(吴秀波),稳重.可靠.有内涵.互联网长这样,漂亮.任性.烧钱.有魅力.当他们两个遇到一起就变成了这样,被拍成了一部电影<北京遇上西雅图>."他说,未来三年互联网金融势不可当. 以下为演讲实录: 侯本旗:金融和互联网好像不太一样,我不知道大家有没有想过金融长什么样,金融长这样(吴秀波),稳重.可靠.有内涵.互联网长这样(汤唯),漂亮.任性.烧钱.有魅力,当

献给天下的母亲:遇上你,三生有幸

忘不了这22年来,你含辛茹苦把我养大的恩情;忘不了这么多年来,你每日披星戴月的辛勤劳作;同样无法忘却的还有你从满头青丝到如今白发渐多的无悔付出!遇上你--我亲爱的妈妈,三生有幸! --题记 已经弃笔多时,久不写文有多日了.也有好多年没有为我的妈妈谱一曲赞歌了.这首歌不需要有多华丽的词藻,也不需要有多醉人的曲调,且听我慢慢道来我与我的母亲不可分割的缘分. 90年农历十月月二十五日,我在我母亲肚子里躁动不安,久久不肯出世.母亲说我是个折腾人的小家伙,从那日起,母亲就躺在床上,等着迎接我的到来.可是我

《当90后遇上创业》一一1.4 激情不值钱

1.4 激情不值钱 当90后遇上创业 大学生创业最不缺的就是激情,凭着一腔热血,几个伙伴晚上喝了点小酒,伸手指向星空,发誓要改变世界,要让世界记住自己的名字. 创业需要激情,需要肾上腺素快速分泌带来的那种快感,这也是创业吸引人的地方.激情能让自己快速产生想法,能让团队高效地动起来.创业的初期一片迷茫,在看不见未来的道路上,需要一点"兴奋剂"给你力量. 在我第三次创业的时候,在一个同学家中吃完饭,开始讨论第二天的准备,谈一些具体的事项,一谈就是接近12点.大家似乎都没有要停下的意思,每个

论坛里朋友们帮帮忙,我遇上麻烦了

问题描述 论坛里朋友们帮帮忙,我遇上麻烦了 个人在弄个web项目,可没想搭建spring框架时就冒出这么一堆问题来,自个弄两天了也每个头绪,无奈来着找大伙帮忙,spring版本是3.1.0的,以下是材料:控制台日志:严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start comp