gruntjs - uglify - grunt watch example
sintaxis grunt-contrib-copy para confusiĆ³n de opciones de proceso (2)
Esto no parece ser un problema con la opción de process
en absoluto, pero más un problema con srcThemeDir
. Me gustaría iniciar sesión para asegurarme de que sabe exactamente qué es, ya que parece que está haciendo que la tarea de copy
no encuentre ningún archivo (y por lo tanto no llame a la función de proceso).
Estoy tratando de reemplazar algunos marcadores de posición en diferentes archivos mientras copio. My gruntfile funciona bien, pero al agregar la opción de proceso para hacer los reemplazos, simplemente no está funcionando. A continuación se muestra la sección relevante de mi archivo gruñido:
grunt.initConfig({
copy: {
js: {
files: [{
expand: true,
cwd: ''src/wp-content/themes/pilau-starter/'',
src: [''**/*.js''],
dest: ''public/wp-content/themes/pilau-starter/''
}],
options: {
process: function ( content ) {
console.log( content );
content = content.replace( /pilauBreakpointLarge/g, breakpoints.large );
content = content.replace( /pilauBreakpointMedium/g, breakpoints.medium );
return content;
}
}
},
}
});
Las rutas se pueden entender en el contexto del código en GitHub: https://github.com/pilau/starter (el directorio público no está comprometido con el repositorio porque es un tema inicial). Esas rutas son variables en mi Gruntfile original, y funcionan bien en todas las demás tareas.
Todos los vars están configurados OK. He incluido el console.log( content )
para verificar si la función del proceso se está ejecutando en realidad, no parece ser así, así que supongo que es una sintaxis básica.
Hay una respuesta ( https://stackoverflow.com/a/28600474/1087660 ) que parece abordar esto, pero por lo que puedo decir, esa forma de hacerlo es simplemente mala sintaxis JS - no estoy seguro de cómo se marcó como derecho.
--verbose
para ejecutar la tarea de copia:
Running "copy:js" (copy) task
Verifying property copy.js exists in config...OK
Files: src/wp-content/themes/pilau-starter/js/admin.js -> public/wp-content/themes/pilau-starter/js/admin.js
Files: src/wp-content/themes/pilau-starter/js/flickity.js -> public/wp-content/themes/pilau-starter/js/flickity.js
Files: src/wp-content/themes/pilau-starter/js/global.js -> public/wp-content/themes/pilau-starter/js/global.js
Files: src/wp-content/themes/pilau-starter/js/modernizr.js -> public/wp-content/themes/pilau-starter/js/modernizr.js
Files: src/wp-content/themes/pilau-starter/js/picturefill.js -> public/wp-content/themes/pilau-starter/js/picturefill.js
Files: src/wp-content/themes/pilau-starter/js/respond.js -> public/wp-content/themes/pilau-starter/js/respond.js
Options: processContent=false, processContentExclude=[], process=undefined
Options: processContent=false, processContentExclude=[], process=undefined
Copying src/wp-content/themes/pilau-starter/js/admin.js -> public/wp-content/themes/pilau-starter/js/admin.js
Reading src/wp-content/themes/pilau-starter/js/admin.js...OK
Writing public/wp-content/themes/pilau-starter/js/admin.js...OK
Su versión de grunt-contrib-copy es 0.4.0. Como señala correctamente por @nemesv arriba, el nombre de propiedad para usar en esta versión sería processContent
not process
.
Cloné tu repositorio y json-breakpoints
rama json-breakpoints
. Y ejecutó grunt copy:js
y reemplazó el contenido.
Ahora, cuando ejecuta grunt copy:js --verbose
aún mostrará esto
processContent
se registra indefinido porque grunt usa JSON.stringify
para registrar un valor. Y JSON.stringify
devuelve undefined
cuando le pasa una definición de función.
Si está interesado, este es el método responsable de registrar toda la opción
Log.prototype.writeflags = function(obj, prefix) {
var wordlist;
if (Array.isArray(obj)) {
wordlist = this.wordlist(obj);
} else if (typeof obj === ''object'' && obj) {
wordlist = this.wordlist(Object.keys(obj).map(function(key) {
var val = obj[key];
return key + (val === true ? '''' : ''='' + JSON.stringify(val));
}));
}
this._writeln((prefix || ''Flags'') + '': '' + (wordlist || ''(none)''.cyan));
return this;
};