2014-03-01 33 views
4

我正在使用不同的依赖关系(如页面,superagent,vue)在客户端项目上工作。为了优化我的grunt-browserify任务速度,我想在一个文件中创建一个包含所有这些依赖关系的包,比如lib.js.我的源代码将被编译为app.js.然后我想我将不得不将两者连接到我的build.js中。有了这个设置,grunt只需要更新app.js和build.js),而不是lib.js.这也意味着对于包含在lib.js中的每个依赖项,我仍然可以要求(dep)。在一个browserify包中的多个节点模块

我已经读了一些关于它的stuf,但我无法设法使它工作。

我现在browserify任务是:

browserify: { 
     dev: { 
      files: { 
       'build/app.js': ['src/**/*.js', 'src/**/*.html'] 
      }, 
      options: { 
       debug: true, 
       external: ['vue', 'superagent', 'page'] 
      } 
     } 
    } 

,我已经尝试添加类似的东西没有成功:

browserify: { // the dev target is still there 
     lib: { 
      files: { 
       'build/lib.js': ['vue', 'superagent', 'page'] 
      } 
     } 
    } 

我知道这是行不通的,因为我的文件对象不正确,但是我不知道如何自动获取每个依赖项的主文件。

任何帮助,将不胜感激。谢谢 !

回答

0

我终于想出了如何做它凉亭组件(尚未测试npm模块)。

首先,库browserify任务(使用TweenMax的例子):

libs: { 
    files: { 
     'build/public/libs.js': ['bower_components/greensock/src/minified/TweenMax.min.js'] 
    }, 
    options: { 
     shim: { 
      TweenMax: { 
       path: 'bower_components/greensock/src/minified/TweenMax.min.js', 
       exports: 'TweenMax' 
      } 
     } 
    } 
} 

然后应用任务:

dev: { 
    files: { 
     'build/public/desktop/desktop.js': ['src/desktop/**/*.js'] 
    }, 
    options: { 
     external: ['TweenMax'] 
    } 
} 

它使垫片或别名为每个库是非常重要的。当我第一次尝试制作外部捆绑软件时,我使用了几个浏览器变换(例如debowerify/deglobalify),这些变换干扰了外部事物。

相关问题