with instalar error con compress cannot sass gulp bourbon neat

sass - instalar - ¿Qué hace Gulp''s includePaths?



npm sass (2)

includePaths

Tipo: Array Valor predeterminado: []

Un conjunto de rutas en las que puede mirar libsass para intentar resolver sus declaraciones de @import. Cuando use datos, se recomienda que use esto.

en sass, puede organizar sus archivos sass en varias carpetas, pero desea que main.sass pueda importarlos cuando se includePaths , para que pueda especificar includePaths , para que sass sepa dónde encontrar el @import sass file , Aquí usa node-neat , si desea importar algunos estilos desde él, de forma predeterminada, Sass no sabe dónde buscar, por lo que necesita decirle a Sass dónde encontrar el archivo para importar.

Estoy intentando comenzar a usar las bibliotecas Bourbon y Neat Sass en mi proyecto. Quiero compilar Sass con Gulp. Esta es una configuración sencilla de tareas de styles que he encontrado en uno de los tutoriales:

var gulp = require(''gulp''), sass = require(''gulp-sass''), neat = require(''node-neat'').includePaths; var paths = { scss: ''./assets/styles/*.scss'' }; gulp.task(''styles'', function () { return gulp.src(paths.scss) .pipe(sass({ includePaths: [''styles''].concat(neat) })) .pipe(gulp.dest(''./dist/styles'')); }); gulp.task(''default'', function () { gulp.start(''styles''); });

Luego en el archivo principal .scss las importaciones:

@import "bourbon"; @import "base/base"; @import "neat";

Esta tarea se ejecuta correctamente.

Lo que me desconcierta aquí es lo que includePaths hace exactamente? Basándose en el ejemplo anterior, ¿puede alguien explicarme cuál es el rol de includePath ?


El compilador SASS usa cada ruta en loadPaths cuando resuelve SASS @imports.

loadPaths: [''styles/foo'', ''styles/bar''] @import "x"; // found via ./styles/foo/_x.scss @import "y"; // found via ./styles/bar/_y.scss

Tenga en cuenta que el compilador resuelve cada @import considerando cada ruta en loadPaths de izquierda a derecha (similar a $PATH en un entorno UNIX). Un ejemplo de escenario podría ser:

loadPaths: [''styles/i'', ''styles/ii'', ''styles/iii'', ''styles/iv''] @import "x"; // no file at ./styles/i/_x.scss // no file at ./styles/ii/_x.scss // found a file at ./styles/iii/_x.scss ... // ... this file will be used as the import // ... terminate lookup // the file ./styles/iv/_x.scss will be ignored

No había ningún archivo _x.scss en styles/i , por lo que se pasó a buscar dentro de styles/ii . Finalmente, encontró un archivo _x.scss en styles/iii y terminó la búsqueda. Mira cada carpeta en loadPaths comenzando desde el primer elemento de la matriz y moviéndose hacia la derecha. Después de intentar todas las rutas, si no podemos encontrar el archivo, declaramos que esta declaración @import no es válida.

Cargar rutas es útil si tiene una biblioteca externa (como bournon / neat). La biblioteca externa es grande y usará muchas declaraciones de @import. Sin embargo, no coincidirán con la estructura de carpetas de su proyecto y, por lo tanto, no se resolverán. Sin embargo, puede agregar carpetas adicionales a las loadPaths para que se resuelvan las @imports dentro de la biblioteca externa.