我想使用requirejs优化器来创建/定义我的js文件的模块名称。
例如:如果我有一个文件说模块/ moduleA下的test.js
modules
|
|
-----moduleA
|
-----test.js
我希望requirejs优化器根据路径为我创建模块名称...例如下面我想要requirejs优化器来创建模块名称modules / moduleA / test并放入test.js中的define目录
例如: 在运行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) {
...
}
);
我稍后会通过grunt来处理相关的依赖文件...但是我希望requirejs优化器访问每个文件并根据它呈现的路径给我模块名称。
这可行吗?
答案 0 :(得分:0)
Requirejs的作者James Burke通过另一个论坛提供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 }); }); }); });