2017-01-04 3 views
0

現在、私はintern.jsのカスタムhtmlレポーターで作業しています。私が使用しているテンプレートエンジンはmarko.jsです。 marko.jsは、入力ファイルは、通常のNode.jsに正しく生成され 私のHTML構文に私のために「.marko」と拡張ファイル(common.js)intern.jsに.jsファイル拡張子を自動的に追加することからrequireJSを変更しました

私はインターンに同じコードを統合する際に問題が発生したを持っています.js。コードはmarkojs

で破ったrequirejs(AMD)internjsによってその使用は、私は、ファイルがhello-world.marko.jsになるよう

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

を行うときに、私のマルコ拡張子に自動的に.jsファイルの拡張子を追加され、これが原因カスタム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

require機能が実際にノードのローダーまたはAMDローダーのいずれかに任意のテキストリソースをロードするためのものではありません下回っています。 Nodeでは、インターンを実行しているかどうかにかかわらず、fs.readFileまたはfs.readFileSyncを使用できます。インターンのDojoベースのAMD環境では、次のようにdojo/textローダー・プラグインを使用することもできます。

var template = require('dojo/text!./hello-world.marko'); 
関連する問題