Browserify

browserify 是一个前端打包工具,它能帮你解决前端复杂的模块依赖关系。

browserify 可以让你使用类似于 node 的 require() 的方式来组织浏览器端的Javascript代码,通过预编译让前端Javascript可以直接使用 Node NPM

初始文件夹结构

初始文件夹结构如下:

.
├── app.js
└── index.html

app.js 暂时为空,index.html 为最基本的 html 结构,引入 app.js 。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>browserify</title>
</head>
<body>
    <div class="main"></div>
</body>
<script src="app.js"></script>
</html>

在 app.js 中增加简单的代码 alert('hello browserify!'),在浏览器中打开页面,可见弹出提示。

下载并保存 Browserify 到项目

首先,使用 npm init 命令生成 package.json 文件。
然后,使用以下命令下载 Browserify 并保存为开发依赖包。

cnpm install browserify --save-dev

Browserify 和 NPM

使用npm安装的依赖包,Browserify可以自动识别。 以jQuery为例:

cnpm install jquery --save

然后,使用的时候,就可以:

var $ = require('jquery');

如果不是使用 npm 安装的 jquery 依赖包,而是直接本地根目录下的 jquery ,那么:

var $ = require('./jquery.js');

完成后,在 index.html 增加:

...
<body>
    <div class="main"></div>
</body>
...

然后,在 app.js 中对 main 这个 div 作简单处理:

var $ = require('./jquery.js');

$('.main').text('hello browserify!');

如果这时在浏览器中打开 index.html 是会报错的,因为浏览器本身不懂得处理文件之间的依赖关系,需要使用 Browserify 打包文件后才可以看到效果。

使用 Browserify 打包文件

首先,把 index.html 引入的 js 文件从 app.js 改为 bundle.js。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>browserify</title>
</head>
<body>
    <div class="main"></div>
</body>
<script src="bundle.js"></script>
</html>

bundle.js 从哪里来呢?
在 package.json 中增加以下部分:

...
  "scripts": {
    "build": "browserify app.js -o bundle.js"
  }
...

然后在命令行运行以下命令:

npm run builld

完成以后可以发现,文件夹下新增了 bundle.js ,这时候打开 index.html 应该就可以正常看到文字了。

browserify app.js -o bundle.js

这个命令所做的,就是把 app.js 所依赖的所有文件都打包到 bundle.js 里面去。打开 bundle.js 可以看到 app.js 和 jQuery 的内容。

尝试增加自己的模块

Browserify 可以使用通过 npm 下载的包,非常方便。但它的用处绝不仅于此。在开发的时候,把自己的代码模块化,然后 export 出去,在 Browserify 中也可以使用 require 来获得。

现在,把问候语强化成一个小模块 salutation.js,放在 utils 文件夹下。

/* 创建自己的模块 */
var salutation = function (container) {
    var greetingsList = [
        'Nice to see you here!',
        '很高兴见到你!',
        'Hahaaaaaaa!',
        'Boom Boop!'
    ];
    var max = greetingsList.length;
    var randomIndex = Math.floor(Math.random() * max);
    container.text(greetingsList[randomIndex]);
};
/* 把模块export出去 */
module.exports = salutation;

在 app.js 中引入这个模块,并使用:

var $ = require('./jquery.js');
/* 引入自己的salutation模块 */
var salutation = require('./utils/salutation.js');
salutation($('.main'));

然后使用 browserify 打包,不断刷新页面即可见效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值