2017-01-04 2 views
0

Actuellement, je travaille dans custom html reporter pour intern.js. Le moteur de template que j'utilise est marko.js. marko.js ont fichier d'extension avec « .marko » pour moi d'entrer ma syntaxe HTML Le fichier est généré correctement dans Node.js normal (common.js)modifier requireJS d'ajouter l'extension de fichier .js automatiquement sur intern.js

Le problème est survenu quand j'intègre le même code interne à .js. Les requirejs (AMD) que l'utilisation par internjs est l'ajout de l'extension de fichier .js automatiquement mon extension marko quand je fais

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

qui rendent le fichier se hello-world.marko.js et cela a causé le code cassé dans markojs

la code personnalisé rapporteur html est inférieur

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; 

}) 

Répondre

0

La fonction require est pas vraiment destiné à charger des ressources de texte arbitraires dans les deux chargeur de nœud ou un chargeur AMD. Dans Node, que vous exécutiez Intern ou non, vous pouvez utiliser fs.readFile ou fs.readFileSync. Dans l'environnement AMD basé sur Dojo de Intern, vous pouvez également utiliser le plugin de chargement dojo/text, comme ceci:

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