Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js r、 来自节点脚本的js?_Node.js_Requirejs_R.js - Fatal编程技术网

Node.js r、 来自节点脚本的js?

Node.js r、 来自节点脚本的js?,node.js,requirejs,r.js,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或G

我觉得这一定很明显,但我却无法理解

我想从节点模块而不是命令行运行requirejs的r.js编译,我看到的每一个文档都显示了命令行选项。这就是我想要的:

var r = require('requirejs');
r('./build/common.js');
r('./build/app-main.js');
如果有更好的方法,让我解释一下潜在的动机:

我有几个不同的build.js文件,我想在这些文件上运行r.js(公共依赖项和主应用程序的独立包)。我想将其封装在一个gulpfile或GrunFile中,两者都运行,而不需要像grunt和gulp require.js插件那样将所有的r.js配置放在实际的grunt/gulp文件中。将r.js配置保留在单独的build/*.js文件中可以让我们在需要时使用grunt/gulp或命令行


有什么方法可以做到这一点吗?

将优化器用作节点模块,但它并不在最明显的位置。这是文档中给出的示例:

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
});

谢谢你,这让我走上了正轨。你是对的,文档不是最明显的地方。我最初尝试过r.optimize('build/app main.js');这根本不起作用,所以我放弃了,但是在看到你的答案并知道这是正确的路径之后,我深入研究了r.js源代码,发现它将接受一个数组中的文件。谢谢