更改requireJS自动在intern.js上添加.js文件扩展名

时间:2017-01-04 16:26:08

标签: requirejs amd intern marko

目前我在intern.js的自定义html报告器中工作。我使用的模板引擎是marko.js。 marko.js有扩展文件“.marko”供我输入我的html语法 该文件在正常node.js(common.js)

中正确生成

当我将相同的代码集成到intern.js时出现问题。 internjs使用的requirejs(AMD)在我做

时自动将.js文件扩展名添加到我的marko扩展名中
var template = require('./hello-world.marko');

使文件变为hello-world.marko.js,这导致代码在markojs中破坏

自定义html报告代码在

下面
define(function (require) {

    // require('intern/dojo/node!marko/node-require').install();
    var fs = require('intern/dojo/node!fs');

    var template = require('./hello-world.marko');
    console.log(template);
    function JsonReporter(config) {
        config = config || {};
        this.output = config.output;
    }

    JsonReporter.prototype = {
        runEnd(executor) {
            // console.log("toJson: " + JSON.stringify(executor.suites))
            data = JSON.stringify(executor.suites);
            template.renderToString(data,
                function (err, output) {
                    console.log(output);
                    fs.writeFile('result.html', output, function (err) {
                        if (err) return console.log(err);
                        console.log('Save done');
                    });
                });
        },
    }
    return JsonReporter;

})

1 个答案:

答案 0 :(得分:0)

require函数并不意味着在Node的加载器或AMD加载器中加载任意文本资源。在Node中,无论您是否正在运行Intern,都可以使用fs.readFilefs.readFileSync。在Intern的基于Dojo的AMD环境中,您还可以使用dojo/text加载器插件,如下所示:

var template = require('dojo/text!./hello-world.marko');