browserify打包,浏览器支持commonjs的require
发布于 作者:苏南大叔 来源:程序如此灵动~

在Web
开发的世界中,管理依赖和模块可能是一项艰巨的任务。随着项目复杂性的增加,对高效处理JavaScript
模块的强大解决方案的需求也随之增加。这就是Browserify
发挥作用的地方。在这篇文章中,苏南大叔将探讨Browserify
能解决的现实问题。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10
,node@20.18.0
,Browserify@17.0.1
。
Browserify
Browserify
是一个强大的工具,它允许开发者在浏览器端的JavaScript
代码中使用Node.js
风格的require('modules')
语句。它将所有的依赖和模块打包成一个可以在网页中s的.js
文件。
官网还提到:Browserify
的设计初衷是为了让开发者能够在浏览器中使用与Node.js
相同的模块系统。这不仅简化了代码的编写和维护,还使得在客户端和服务器端之间共享代码变得更加容易。
官方网站是:
安装Browserify
:
npm install -g browserify
使用范例
创建一个简单的项目结构:
sunan-project/
├── bundle.js
├── module.js
└── index.html
在module.js
中编写一个简单的commonjs
的模块:
module.exports.hola = function () {
return 'hola,browserify and commonjs';
};
module.exports.author = "苏南大叔";
在main.js
中使用这个模块:
var test = require('./module');
console.log(test.hola());
console.log(test.author);
关于这个commonjs
代码的写法,可以参考:
浏览器不执行支持
浏览器虽然支持es6
的import
,但是并不直接支持commonjs
模块。所以可能会得到下面的错误提示信息:
Uncaught ReferenceError: require is not defined
打包后支持浏览器
打包命令:
browserify module.js -o bundle.js
index.html
:
<script src="bundle.js"></script>
对标产品
除了Browserify
,类似功能的打包工具还有:Webpack
/Rollup
/Parcel
/koala
/grunt
。参考文章:
结论
Browserify
是现代Web
开发中的一个有价值的工具,提供了一系列从模块化代码和依赖管理到提高性能和与Node.js
模块兼容性的好处。通过解决Web
开发中的常见挑战,Browserify
帮助开发者创建更可维护、高效和可扩展的应用程序。
目前的浏览器环境,并不支持require
语句的commonjs
模块的,但是支持import
语句的es6
模块。但是,nodejs
环境,两者都是支持的。本文的代码,其实也可以用webpack
等进行转化。但是Browserify
完胜的原因,就在于它的简单。不用任何配置,直接就可以转化。
苏南大叔使用Browserify
的最主要原因:就是因为它非常轻便。相比较webpack
等来说,简直不要太简单。更多前端文章,请参考苏南大叔的博客。


