2015-07-21 3 views
2

Я хочу использовать оптимизатор requirejs только для создания/определения имени модуля для моего js-файла.requirejs optimizer просто определяет только имя модуля

например: если у меня есть файл сказать test.js под модули/ModuleA

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

James Burke автор Requjs предоставил answer to this через другой форум.

Мы можем легко сделать это с помощью с помощью преобразования из RequireJS:

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 для редактирования. Теперь он выглядит великолепно. Спасибо за вашу помощь – glraj

Смежные вопросы