当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 组件规范又支持了不少.


目录
相关文章
|
Web App开发 JavaScript 前端开发
使用npm+gulp+browserify网页前端开发
本文的目的在于使用npm进行js类库依赖管理,同时精简html中繁杂的导入。 目前类库加载器(如requirejs/seajs等)可以解决script加载的问题。
1513 0
|
1月前
|
网络安全 计算机视觉
【node】 npm install 报错:code 128
【node】 npm install 报错:code 128
39 1
|
2月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
93 1
|
2月前
|
JavaScript 内存技术
node与npm版本对应关系以及使用nvm管理node版本
node与npm版本对应关系以及使用nvm管理node版本
361 0
|
5月前
|
Ubuntu
node、npm 命令升级
node、npm 命令升级
|
4月前
|
JavaScript
node.js 项目中执行 npm install 命令后看到的 idealTree inflate 的含义
node.js 项目中执行 npm install 命令后看到的 idealTree inflate 的含义
223 0
|
2天前
|
资源调度 JavaScript Linux
nvm, node.js, npm, yarn 安装配置
nvm, node.js, npm, yarn 安装配置
18 1
|
1天前
node node-sass sass-loader版本对应问题,对于npm编译大家经常遇到这个问题
node node-sass sass-loader版本对应问题,对于npm编译大家经常遇到这个问题
|
3天前
|
缓存 JavaScript 前端开发
深入剖析NPM: Node包管理器的介绍和使用指南
深入剖析NPM: Node包管理器的介绍和使用指南
10 0
|
12天前
|
JavaScript 前端开发 开发者
Node.js的包管理和npm工具深度解析
【4月更文挑战第30天】本文深入解析Node.js的包管理和npm工具。包管理促进代码复用和社区协作,包包含元数据描述文件`package.json`和入口文件。npm提供搜索、安装、发布等功能,通过命令行进行操作,如`install`、`search`、`uninstall`。npm支持版本控制、全局安装、脚本定义及私有仓库。理解和熟练运用npm能提升Node.js开发效率。

推荐镜像

更多