RequireJs VS Browserify哪一个最适合JS优化

时间:2015-06-04 05:22:03

标签: javascript angularjs requirejs browserify

我正在使用angularJS开发单页应用程序。对于JS优化,目前我有两个选项,一个是requireJs,另一个是Browserify。

哪一个最适合我的AngularJs单页应用程序。

请考虑易于实施,支持,最佳表现等

请建议

.state('root.home',{
        url: '/index.html',
        views: {
            'header': {
                templateUrl: 'modules/header/html/header.html',
                controller: 'headerController'
            },          
            'content-area': {
                templateUrl: 'modules/home/html/home.html',
                controller: 'homeController'
            },
            'footer': {
                templateUrl: 'modules/common/html/footer.html',
                controller: 'footerController'
            }
        },
        data: {
            displayName: 'Home',
         }
    })

在我的index.html页面中,我正在加载所需的javascripts和不需要的脚本。哪个是使用AngularJs UI rooter为home模块加载想要的JS文件的最佳方法。请举例说明UI rooter

2 个答案:

答案 0 :(得分:3)

一些想法:

  • Browserify的易用性胜出。只需使用require()module.exports,就像在任何Node模块中一样;比要求的定义和依赖注入更容易。
  • 两者的CPU时间性能可以忽略不计。就大小而言 - 需要将自身加载到引导程序,但Browserify构建独立的bundle。但是,Browserify确实默认导入一些Node库,这往往会增加大小。
  • 值得注意的是,对于大型应用程序:requirejs允许相当透明的异步加载脚本。 Browserify没有。如果你想要一个非常大的应用程序,你想逐步加载,这可能是一个因素。
  • 值得注意的是:Browserify允许您导入同构Node.js模块。由于您使用的是Angular,因此应用程序本身不会同构,但可以利用更广泛的资源(并且可以通过简单的npm install引入它们)

答案 1 :(得分:-1)

使用AngularJS意味着您不构建同构应用程序。我的猜测是你将在客户端和节点应用程序之间共享更少的代码。如果你只需要客户端中的依赖加载器,那么我会说找到requirejs,它们是很多在线可用的例子。以下是不同可用选项的良好比较。

http://www.slant.co/topics/1089/compare/~webpack_vs_browserify_vs_requirejs