Browserify: 使nodejs模块可以在浏览器下使用

Browserify:浏览器加载Node.js模块
--------------------------------------------------
随着JavaScript程序逐渐模块化,在ECMAScript 6推出官方的模块处理方案之前,有两种方案在实践中广泛采用:一种是AMD模块规范,针对模块的异步加载,主要用于浏览器端;另一种是CommonJS规范,针对模块的同步加载,主要用于服务器端,即node.js环境。

Browserify是一个node.js模块,主要用于改写现有的CommonJS模块,使得浏览器端也可以使用这些模块。使用下面的命令,在全局环境下安装Browserify。

npm install -g browserify

browserify -h //查看帮助信息
browserify --help advanced

example:
------------
//foo.js:
module.exports = function(x){ console.log(x) }

//main.js:
var foo = require('./foo');
foo('hello, browserify~~');

command-line input:
browserify main.js > compiled.js //合并foo.js和main.js并可以用于浏览器环境的js
等价命令
browserify main > compiled.js
browserify main.js -o compiled.js
html中<script>标签引入 <script src="compiled.js"> </script>

example:
------------
我们再看一个在服务器端的backbone模块转为客户端backbone模块的例子。

先安装backbone和它所依赖的jQuery模块。

npm install backbone jquery //一次安装2个库?
然后,新建一个main.js文件。
// main.js

var Backbone = require('backbone');
var $ = Backbone.$ = require('jquery/dist/jquery')(window);

var AppView = Backbone.View.extend({
render: function(){
$('main').append('<h1>Browserify is a great tool.</h1>');
}
});

var appView = new AppView();
appView.render();
接着,使用browserify将main.js转为app.js。

browserify main.js -o app.js
app.js就可以直接插入HTML网页了。

<script src="app.js"></script>
注意,只要插入app.js一个文件就可以了,完全不需要再加载backbone.js和jQuery了。

> 生成模块
有时,我们只是希望将node.js的模块,移植到浏览器,使得浏览器端可以调用。这时,可以采用browserify的-r参数(--require的简写)。

browserify -r through -r ./my-file.js:my-module > bundle.js
上面代码将through和my-file.js(后面的冒号表示指定模块名为my-module)都做成了模块,可以在其他script标签中调用。

<script src="bundle.js"></script>
<script>
var through = require('through');
var myModule = require('my-module');
/* ... */
</script>
可以看到,-r参数的另一个作用,就是为浏览器端提供require方法。

转载于:https://www.cnblogs.com/stephenykk/p/4090433.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
浏览器使用Node.js代码需要借助一些工具,这里介绍两种常用的方案。 1. 使用Browserify Browserify是一个将Node.js模块编译成浏览器可识别的JavaScript文件的工具。使用Browserify,可以在浏览器中直接使用Node.js模块。 首先,需要在Node.js中安装Browserify: ``` npm install -g browserify ``` 然后,在Node.js中编写代码,例如: ``` // mymodule.js module.exports = function(name) { console.log('Hello, ' + name + '!'); }; ``` 接着,在命令行中使用Browserify将代码编译成浏览器可识别的文件: ``` browserify mymodule.js -o bundle.js ``` 最后,在HTML文件中使用编译后的文件: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Node.js in Browser</title> </head> <body> <script src="bundle.js"></script> <script> var mymodule = require('./mymodule'); mymodule('World'); </script> </body> </html> ``` 这样,在浏览器中打开HTML文件就可以看到控制台输出了`Hello, World!`。 2. 使用Webpack Webpack是一个可以打包JavaScript模块的工具。使用Webpack,可以将多个模块打包成一个文件,避免了在HTML文件中引入多个JavaScript文件的问题。 首先,需要在Node.js中安装Webpack: ``` npm install -g webpack ``` 然后,在Node.js中编写代码,例如: ``` // mymodule.js module.exports = function(name) { console.log('Hello, ' + name + '!'); }; ``` 接着,在命令行中使用Webpack将代码打包成浏览器可识别的文件: ``` webpack mymodule.js bundle.js ``` 最后,在HTML文件中使用打包后的文件: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Node.js in Browser</title> </head> <body> <script src="bundle.js"></script> <script> var mymodule = require('./mymodule'); mymodule('World'); </script> </body> </html> ``` 这样,在浏览器中打开HTML文件就可以看到控制台输出了`Hello, World!`。 总的来说,使用Browserify或Webpack可以在浏览器中直接使用Node.js模块,但需要注意的是,在浏览器使用Node.js代码可能会有一些限制,例如无法访问操作系统的文件系统等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值