Browserify

本文介绍Browserify的基础使用方法,包括初始文件夹结构设置、下载并保存Browserify到项目、使用Browserify打包文件等。通过实例演示如何利用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 打包,不断刷新页面即可见效果。

Browserify 是一个模块打包工具,可以将 Node.js 模块打包成浏览器可用的格式,允许在浏览器中使用 Node.js 模块[^2][^3]。以下是其使用教程: #### 安装 全局安装 Browserify: ```bash npm install browserify -g ``` #### 项目初始化 在项目根目录下创建 `package.json` 文件: ```bash npm init -y ``` #### 编写代码 假设在 `src` 目录下有一个 `index.js` 文件,内容如下: ```javascript // 引入其他模块 const greet = require('./greet'); // 使用引入的模块 console.log(greet('World')); ``` 在 `src` 目录下创建 `greet.js` 文件: ```javascript module.exports = function(name) { return `Hello, ${name}!`; }; ``` #### 打包代码 使用 Browserify 打包 `src/index.js` 文件,输出到 `dist/bundle.js`: ```bash browserify src/index.js -o dist/bundle.js ``` #### 在 HTML 中引入打包后的文件 创建一个 `index.html` 文件,引入 `dist/bundle.js`: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Browserify Example</title> </head> <body> <script src="dist/bundle.js"></script> </body> </html> ``` #### 开发辅助工具 Browserify 的生态系统非常丰富,有许多相关的工具和项目: - Watchify:一个 Browserify 的文件监视器,当文件发生变化时自动重新打包。 - Beefy 和 run-browser:用于自动化 Browserify 开发的工具。 - Browserify-middleware:为 Express 应用提供 Browserify 中间件 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值