Javascript requirejs优化器仅定义模块名称
我想使用requirejs优化器为我的js文件创建/定义模块名 如果我有一个文件,在modules/moduleA下说test.jsJavascript requirejs优化器仅定义模块名称,javascript,requirejs,requirejs-optimizer,Javascript,Requirejs,Requirejs Optimizer,我想使用requirejs优化器为我的js文件创建/定义模块名 如果我有一个文件,在modules/moduleA下说test.js modules | | -----moduleA | -----test.js 我希望requirejs优化器仅根据路径为我创建模块名…例如下面我希望requirejs优化器创建模块名modules/moduleA/test,并将其放入test.js中的define中 例如: 在运行requireJS优化器之前 test.js内容: defi
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 optimizer访问每个文件,并根据它显示的路径给我模块名
这可行吗?Requirejs的作者詹姆斯·伯克(James Burke)通过另一个论坛提供了一份报告 通过使用RequireJS的转换,我们可以轻松做到这一点:
谢谢@Louis的编辑。现在看起来很完美。谢谢你的帮助
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
});
});
});
});