node error con compile compilar cannot node.js npm sass compass-sass npm-install

node.js - error - Las funciones no pueden definirse dentro de las directivas de control u otras mixinas



npm install node-sass error (5)

Estoy usando Gulp. La versión 2.3.0 de gulp-sass lo rompe. Regrese a la Versión 2.2.0 y todo está arreglado.

Editar:

El verdadero culpable es el módulo de nodo dentro del módulo de nodo "gulp-sass" conocido como "node-sass". Puede ver dentro del archivo package.json de "gulp-sass" que simplemente tira de una versión mayor que ^ 3.5.3.

Incluso si vuelve atrás y vuelve a instalar "gulp-sass" en 2.2.0, como sugerí antes, el archivo package.json allí todavía sacará "node-sass" mayor que ^ 3.5.3.

Si uso la versión anterior de "node-sass" 3.4.2 ese error desaparece. No sé cómo solucionarlo de forma automática. En una pizca, pude solucionar el problema copiando esa carpeta (que está usando 3.4.2) de un proyecto diferente que funciona. Ahora compila.

¿Puede alguien más inteligente que yo descubrir una mejor manera de lograr este resultado?

En mi proyecto nodeJS de repente da error. No realizo ninguna actualización o cambio. Cuando escribo NPM start en la línea de comando da ese error

ERROR in ./~/css-loader?sourceMap!./~/postcss-loader!./~/sass-loader? sourceMap&outputStyle=expanded&includePaths[]=c:/TFS/rc1/app/scss&includePaths[] =c:/TFS/rc1/~/compass-mixins/lib&sourceMap&sourceMapContents=true!./app/scss/_toolkit.scss Module build failed: undefined ^ Functions may not be defined within control directives or other mixins. in c:/TFS/rc1/node_modules/compass-mixins/lib/compass/functions/_lists.scss (line 81, column 3) @ ./app/scss/_toolkit.scss 4:14-337

Volví a instalar el paquete Compass-Mixins, pero sigue dando el mismo error. Luego miré _lists.scss ese archivo en la línea 81, hay un código. Borré ese bu, pero doy el mismo error. ¿Qué debo hacer?

@if not(function-exists(compact)) { @function compact($vars...) { $list: (); @each $var in $vars { @if $var { $list: append($list, $var, comma); } } @return $list; } }


También me enfrento con un problema similar. Y mi proyecto está usando gulp-sass y compass-mixins . Como heart.cooks.mind señala que, gulp-sass depende de node-sass . Y node-sass actualiza una de sus dependencias libsass a la versión libsass 3.3.3 Delorean desde node-sass 3.5.1 .

Sin embargo, uno de los cambios libsass 3.3.3 de Delorean está relacionado con este problema:
''No permitir que las funciones se definan en directivas de control o mixins (@mgreter, # 1550)''

Obviamente, _lists.scss en compás-mixins rompe esta regla. Parece que alguien plantea un problema a Compass-Mixins y tienen idea de solucionarlo.

Antes de que Compass-Mixins libere la versión corregida del problema, mi solución temporal es eliminar node_modules / node-sass manualmente y npm install [email protected]


Lo que hice (temporalmente) fue instalar globalmente node-sass v3.4.2, y luego reemplazar la versión gulp-sass de node-sass (se encuentra dentro de gulp-sass / node_modules) con esta versión anterior.

sudo npm install -g [email protected]; sudo cp -r /usr/lib/node_modules/node-sass/ /usr/lib/node_modules/gulp-sass/node_modules/;


Por cierto, hay un RP esperando fusionarse para esto. Pero si quieres usar esto hoy, también hay una bifurcación de la fusión .
Si quieres usar el último, simplemente coloca compass-mixins: tjenkinson/compass-mixins en tu package.json y todo estará bien.

Actualización: - También hay un paquete npm para este último mencionado en el PR ahora

Actualización 2: - Esto ya no debería ser un problema con v0.12.8 ahora