node.js - serve - Grunt cwd opción problema
gruntfile (1)
Estoy intentando configurar el complemento grunt-svg-sprite en mi proyecto y según la documentación aquí http://gruntjs.com/configuring-tasks :
cwd Todas las coincidencias src son relativas a (pero no incluyen) esta ruta.
src Patrón (s) para hacer coincidir, en relación con el cwd.
Y según https://www.npmjs.com/package/grunt-svg-sprite
Sin embargo, dado que path / to / assets se convertiría en parte de los ID de forma, lo más probable es que desee agregar un directorio de trabajo en la mayoría de los casos:
your_target: {
expand : true,
cwd : ''path/to/assets'',
src : [''**/*.svg''],
dest : ''path/to/css/dir'',
options : {
// Target-specific options
}
},
Ahora, mi archivo grunt tiene una sección:
svg_sprites: {
options: {
},
cw_sprites: {
expand: true,
cwd: ''public/assets/dist/svgs/'',
src: [''**/*.svg''],
dest: ''public/assets/stylesheets/svg-sprites'',
options: {
shape : {
dimension: {
maxWidth: 32,
maxHeight: 32,
},
spacing: {
padding:0,
}
},
mode: {
css : {
render: {
css: true
},
example:true
},
less: true,
}
}
}
},
cuando ejecuto la tarea anterior con la opción --verbose, veo lo siguiente en el resultado:
....
Reading public/assets/dist/svgs/uncollapsed-triangle.svg...OK
Reading public/assets/fonts/glyphicons-halflings-regular.svg...OK
Reading public/assets/fonts/myraid-pro/MyriadPro-Regular.svg...OK
Warning: Cannot read property ''replace'' of undefined Use --force to continue.
Según el registro anterior, está tratando de leer otros directorios que están fuera de la ruta CWD public / assets / dist / svgs. De hecho, continúa leyendo el directorio raíz del proyecto que contiene bower_components, etc. y escanea todo el directorio raíz del proyecto.
Pensé que usar la opción cwd con la opción src lo restringiría a los subdirectorios de ''cwd'' o directorios relativos a ''cwd''. ¿Por qué se están escaneando otros directorios?
¿Me estoy perdiendo de algo? Gracias por tu ayuda.
De acuerdo, creo que finalmente lo descubrí. En realidad, hay dos proyectos con nombres muy similares:
- grunt-svg-sprite ( https://www.npmjs.com/package/grunt-svg-sprite ) y
- grunt-svg-sprites ( https://www.npmjs.com/package/grunt-svg-sprites )
¡Quería usar el primer proyecto pero instalé el segundo por error! Obviamente no hubiera funcionado :-)
Eliminé el módulo erróneo (2) e instalé el primero, funciona como un amuleto. Me hace preguntar si la convención de nombres necesita pensar en los módulos npm.