2016-12-25 57 views
3

我一直在尋找一段時間,但是我還沒有找到解決我的問題的方法。我使用require.js和使用插件動態加載數據的一些如何在requirejs優化期間排除插件依賴關係

define(['Plugin!data', 'dependency'], function(data, dep) { 
    ... 
} 

,當我嘗試使用r.js

requirejs.optimize({ 
    baseURL: '/js', 
    name: 'main', 
    ... 
}) 
所有模塊優化成一個單一的建設問題出現模塊

優化器嘗試通過插件加載數據。有沒有辦法避免這種情況?

即:如何告訴優化器不通過任何東西進去格式插件...

回答

1

您可以使用exclude在構建配置排除這樣的模塊!例如:

({ 
    baseUrl: "js", 
    dir: "build", 
    removeCombined: true, 
    optimize: "none", 
    modules: [ 
     { 
      name: "built", 
      create: true, 
      include: [ 
       "modA", 
      ], 
      exclude: [ 
       "text!./x.json", 
      ], 
     }, 
    ], 
}) 

這個雖然問題是,有在exclude沒有模式匹配,你會最終不得不單獨列出每個模塊,它可以在大型代碼庫有點問題。

的另一種方法是使用onBuildWrite以除去所有模塊開始text!

({ 
    baseUrl: "js", 
    dir: "build", 
    removeCombined: true, 
    optimize: "none", 
    modules: [ 
     { 
      name: "built", 
      create: true, 
      include: [ 
       "modA", 
      ], 
     }, 
    ], 
    // Use onBuildWrite to exclude modules loaded through plugin. 
    onBuildWrite: function (moduleName, path, contents) { 
     if (moduleName.lastIndexOf("text!", 0) === 0) { 
      return ""; 
     } 
     return contents; 
    }, 
})