目前我在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;
})
答案 0 :(得分:0)
require
函数并不意味着在Node的加载器或AMD加载器中加载任意文本资源。在Node中,无论您是否正在运行Intern,都可以使用fs.readFile
或fs.readFileSync
。在Intern的基于Dojo的AMD环境中,您还可以使用dojo/text
加载器插件,如下所示:
var template = require('dojo/text!./hello-world.marko');