2017-05-05 1 views
1

Ich versuche, eine Anwendung zur Unterstützung von Knoten -v 7.7.3 zu aktualisieren. Aber wenn ich die Grunzen Aufgabe dom_munger leite nach unten:Dom_munger Problem mit Knoten 7.7.3 - Pfad muss eine Zeichenfolge sein

dom_munger:{ 
    read: { 
    options: { 
     read:[ 
     {selector:'script[data-concat!="false"]',attribute:'src',writeto:'appjs', isPath: true}, 
     {selector:'link[rel="stylesheet"][data-concat!="false"]',attribute:'href',writeto:'appcss'} 
     ] 
    }, 
    src: 'app/index.html' 
    } 
} 

Ich erhalte Fehler:

Warning: Path must be a string. Received [ 'app/index.html' ] Use --force to continue. 

Ich frage mich, ob es einen Weg über Grunzen Aufgabe neu zu schreiben ist oder ob es vielleicht eine gute sein Alternative zu dom_munger. Jede Hilfe wäre willkommen.

Antwort

0

Per der grunt-dom-munger Github:

When isPath is true, the extracted values are assumed to be file references and their path is made relative to the Gruntfile.js rather than the file they're read from.

Versuchen Sie, die isPath Eigenschaft entfernen oder verändern sie den Pfad von Ihrem Gruntfile auf die Datei index.html entsprechen.

+0

Vielen Dank! Aber das scheint nur zu funktionieren, wenn sich Grunt und Index in derselben Ordnerstruktur befinden. Meine Struktur sieht wie folgt aus: -/app -index.html - gruntfile.js Und ohne das Attribut ‚isPath‘ die dom_munger für js Dateien im selben Verzeichnis aussehen wie, wo die Gruntfile Orte ist. – sandrasvensson

+0

@sandrasvensson Aber haben Sie versucht, die Eigenschaft 'isPath' zu entfernen? Es schien [dieses ähnliche Problem] zu lösen (https://github.com/cgross/grunt-dom-munger/issues/42). –

0

Vielen Dank! Aber das scheint nur zu funktionieren, wenn sich Grunt und Index in derselben Ordnerstruktur befinden. Meine Struktur sieht wie folgt aus:

- /app 
    -index.html 
- gruntfile.js 

Und ohne das Attribut ‚isPath‘ die dom_munger für js Dateien im selben Verzeichnis aussehen wie, wo die Gruntfile Orte ist.

0

Entfernen Sie isPath: true, und stellen Sie sicher, dass der Pfad im Attribut src relativ zur Datei Gruntfile.js ist und nicht die Datei, von der sie gelesen werden.

Wenn Bedarf macht einen Ersatz in Pfad:

dom_munger: { 
    replacePath: { 
    options: { 
     callback: function($, file){ 
     var scripts = $('script[data-concat!="false"]'); 
     // NOTE: path is made relative to the Gruntfile.js rather than the file they're read from 
     for(var i=0, s, il=scripts.length; i<il; i++){ 
      s = scripts[i]; 
      if(s.attribs.src){ 
      s.attribs.src = s.attribs.src.replace('../', ''); 
      } 
     } 
     } 
    }, 
    src: 'temp/index.html' 
    }, 
    read: { 
    options: { 
     read: [ 
     {selector:'script[data-concat!="false"]',attribute:'src',writeto:'appjs'}, 
     {selector:'link[rel="stylesheet"][data-concat!="false"]',attribute:'href',writeto:'appcss'} 
     ] 
    }, 
    src: 'temp/index.html' 
    } 
} 
Verwandte Themen