2016-05-06 16 views
1

Ich habe versucht, Liveleload für meine Berichterstattung zu aktivieren. Mein Werkzeug, um diesen Bericht zu generieren ist karma-coverage und ich generieren diesen Bericht in den folgenden Ordner: Test/Berichterstattung/html-BerichtIch brauche aktivieren Liveleload in meinem Berichterstattung Testbericht

-test 
| 
|-- coverage 
    | 
    |-- report-html 
     | 
     |-- index.html 

Wenn der Bericht erstellt wurde ich grunt-contrib-connect und dienen den erstellten Bericht die Verwendung von folgende:

var COVERAGE_BASE = './test/coverage/report-html', 

    ... 
    ... 
    ... 
    connect: { 
     server: { 
     options: { 
      port: 9000, 
      base: '.', 
      open: false 
     } 
     }, 
     dist:{ 
     options: { 
      keepalive: true, 
      port: 9000, 
      base: './dist', 
      open: false 
     } 
     }, 
     coverage: { 
     options: { 
      keepalive: true, 
      port: 9001, 
      base: COVERAGE_BASE , 
      open: false 
     } 
     } 
    } 

Wenn ich meine Aufgabe ausführen grunt coverage, mein configuraton ist es

COVERAGE_TASKS = ['shell:test','open:coverage', 'connect:coverage','watch']; 

grunt.registerTask('coverage', COVERAGE_TASKS); 

Meine Idee ist es „Intercept“ die index.html und ein Skript

<script src="//localhost:35729/livereload.js"></script> 

Exist irgendeine Weise der index.html abzufangen, bevor dienen mit Connect-Paket und verarbeitet es für das Hinzufügen dieses Skripts livereload injizieren?

Antwort

0

Kann sein, das hilft: Sie Middleware hinzufügen können, die verwendet werden können Anfrage an Ihren connect Server wie folgt abfangen:

grunt.initConfig({ 
 
    connect: { 
 
    server: { 
 
     options: { 
 
     middleware: [ 
 
      function myMiddleware(req, res, next) { 
 
      
 
      // DO YOUR THING HERE!!!! 
 
      res.end('Hello, world!'); 
 
      } 
 
     ], 
 
     }, 
 
    }, 
 
    }, 
 
});

+0

Vielen Dank für Ihre Antwort. Wie lese ich die index.html in diesem Aufschlag? es ist Teil des 'res' Arguments? –

+0

Nein müssen Sie möglicherweise nodejs fs-Modul verwenden, um die HTML zu öffnen und zu ersetzen, was Sie wollen und es – AJS

+0

https://nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback – AJS