2015-07-21 52 views
2

我想使用requirejs優化器只是爲我的js文件創建/定義模塊名稱。requirejs優化器僅僅定義模塊名稱

例如:如果我有一個文件,說下模塊/ moduleA test.js

modules 
| 
| 
-----moduleA 
    | 
    -----test.js 

我想requirejs優化基於路徑我剛剛創建的模塊名稱...如低於我想requirejs優化創建模塊名稱模塊/ moduleA /測試,並把裏面的定義存在於test.js

如: 運行requireJS優化之前

test.js內容:

define(["my/cart", "my/inventory"], 
      function(cart, inventory) { 
       ... 
      } 
     ); 

運行requirejs優化

test.js內容後

define("modules/moduleA/test", 
      ["my/cart", "my/inventory"], 
      function(cart, inventory) { 
       ... 
      } 
     ); 

我會後來被咕嚕的方式結合相關的相關文件的關懷......但我想requirejs優化訪問每個文件並根據它呈現的路徑給我提供模塊名稱。

這是可行的?

回答

0

Requirejs的作者James Burke通過另一個論壇提供了answer to this。對於編輯

var requirejs = require('requirejs'); 
requirejs.tools.useLib(function(require) { 
    require(['transform'], function (transform) { 
    //todo: generate a files array with the list of files to concatenate. 

     files.forEach(function(filePath) { 
     var fullPath = path.join(targetDir, filePath); 
     var contents = fs.readFileSync(fullPath, 'utf8'); 
     var moduleId = /* todo, figure out what the moduleId is for the module */ 
     var transformed = transform 
          .toTransport('', moduleId, fullPath, contents); 

     //todo: concat the contents together 
     }); 
    }); 
    }); 
}); 
+0

感謝@Louis:

我們可以通過使用從RequireJS變換很容易地做到這一點。它現在看起來很完美。謝謝你的幫助 – glraj