2014-03-01 59 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),這些變換干擾了外部事物。

相關問題