来自节点脚本的r.js?

时间:2014-11-04 04:22:58

标签: node.js requirejs r.js

我觉得这一定是如此明显,但它正在逃避我。

我想从节点模块而不是命令行运行requirejs的r.js编译,而我见过的每个位文档都显示命令行选项。我正在寻找这样的东西:

var r = require('requirejs');
r('./build/common.js');
r('./build/app-main.js');

让我解释一下潜在的动机,以便有更好的方法:

我有一些不同的build.js文件,我想运行r.js(对于公共依赖项和主应用程序的单独包)。我想将它包装在一个运行两者的gulpfile或gruntfile中,并且不将所有r.js配置放在实际的grunt / gulp文件中,如grunt和gulp require.js插件似乎都可以。将r.js配置保留在单独的build / * .js文件中可以让我们在需要时使用grunt / gulp OR命令行。

有什么方法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

将优化器用作节点模块is documented,但它不在最明显的位置。这是文档提供的示例:

var requirejs = require('requirejs');

var config = {
    baseUrl: '../appDir/scripts',
    name: 'main',
    out: '../build/main-built.js'
};

requirejs.optimize(config, function (buildResponse) {
    //buildResponse is just a text output of the modules
    //included. Load the built file for the contents.
    //Use config.out to get the optimized file contents.
    var contents = fs.readFileSync(config.out, 'utf8');
}, function(err) {
    //optimization err callback
});