什么用requirejs以及何时使用browserify?

时间:2016-05-03 18:40:12

标签: javascript requirejs browserify amd commonjs

我阅读了很多关于requirejs和browserify的文章。在2行中,如果有人要我定义它,我会说。

AMD -> Client Side -> Implementaion : RequireJS -> asynchronous -> uese define keyword

CommonJs -> Server Side -> Implementaion : Browserify -> synchronous -> uses export keyword

我想了解的是: -

  1. 即使是服务器端,为什么会在客户端使用browserify?
  2. 你什么时候比其他人更喜欢?

1 个答案:

答案 0 :(得分:-1)

Webpack和Browserify不会直接替换requirejs,而是替换require附带的the r.js optimizer。两个现代捆绑包都通过各种过滤器运行您的代码(以及可选的样式表,模板和其他资源),创建一个包含整个应用程序的单个文件。

RequireJS'异步模块(AMD)已被更常用的CommonJS和ES6模块定义所取代。这部分是因为节点模块与webpack和browserify很好地兼容,但也因为当你有一个捆绑文件时,AMD的好处很大程度上停止了应用。由于所有模块都可以同时使用,因此您不需要管理异步加载的开销。

Webpack和Browserify也扩展了rjs'功能集,通过添加对编译模板,图像,字体和其他资源的广泛支持。他们可以运行转发器(如Babel或Typescript),uglifiers,minifiers和各种其他工具。 Webpack还支持输出多个捆绑包并按需加载它们,同时隐藏开发人员的大部分部署细节。