RequireJS优化器前置

时间:2014-06-29 19:17:07

标签: javascript requirejs r.js

我正在寻找一种方法来将一些信息添加到最小化文件中。

我找到了here选项,但它对我没用,因为uglifier在添加了包装代码后运行。

1 个答案:

答案 0 :(得分:2)

您可以assign a function to the out key对文件进行后期处理。通过设置此选项,结果不会自动写入文件,因此您必须自己执行此操作。例如:

({
    // Let's optimize mainApp.js
    name: "mainApp",
    optimize: "uglify",
    out: function(text) {
        // Transform the compiled result.
        text = '// Stuff to prepend \n' + text;

        var filename = 'outputfile.js';
        // By default, the name is resolved to the current working directory.
        // Let's resolve it to the directory that contains this .build.js:
        filename = path.resolve(this.buildFile, '..', filename);
        // Finally, write the transformed result to the file.
        file.saveUtf8File(filename, text);
    }
})

注意:在上一个代码段中,file.saveUtf8File is an internal RequireJS APIpath是从Node.js标准库导入的path module(仅当您使用Node.js运行r.js时,而不是例如与Rhino或浏览器)。

如果将前一个保存为test.build.js,则创建一个名为mainApp.js的空文件并运行`r.js -o test.build.js,然后将出现一个名为“outputfile.js”的文件使用以下内容创建:

// Stuff to prepend 
define("mainApp",function(){});