Node Sass no pudo encontrar un enlace para su entorno actual


499

Tengo problemas para crear una aplicación porque node-sass sigue fallando con el error.

ERROR en el enlace faltante /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node
Node Sass no pudo encontrar un enlace para su entorno actual: OS X 64 bits con el nodo 0.10.x

He intentado correr

npm rebuild node-sass

que dice

Binario está bien; saliendo

Al ejecutar node -vme sale v6.2.2

Que es diferente a lo que dice el error sass "Nodo 0.10.x". No puedo entender por qué está obteniendo la versión incorrecta. También he intentado eliminar la carpeta node_modules y ejecutar npm update o npm install, que no resolvieron el problema. ¿Algunas ideas?


8
¿Está utilizando un administrador de versiones de nodo como nvm? Si a veces te equivocas, algunas de las rutas del módulo npm e intentan usar una versión diferente a la actual. Si no siempre se puede intentar quitar la node_modulescarpeta y la instalación de las dependencias de nuevo
Vasil Dininski

2
Hola, no estoy usando nvm y probé el paso de eliminación / reinstalación. sin suerte.
wazzaday

¿Cuál es su entorno de desarrollo? usa VS.NET 2105?
Mike Anderson

@VasilDininski Estoy usando nvm, ¿qué debo hacer?
Subkhan Sarif

1
Abra Visual Studio 2017 Vaya a Herramientas -> Opciones ... Vaya a Proyectos y soluciones -> Administración de paquetes web mueva $ (PATH) a la parte superior de esa lista y cierre esa ventana. En mi caso, esta solución funcionó porque la versión de mi nodo es 11.x
Ya tomé

Respuestas:


721

Yo tuve el mismo problema

Hay un error en su archivo:
Error: Falta el enlace E: \ allapp \ badshaindiancuisine \ node_module \ node-sass \ vendor \ win32-x64-46 \ binding.node
Node Sass no pudo encontrar un enlace para su entorno actual: Windows 64 -bit con Node.js 4.x

Enlaces encontrados para el siguiente entorno:
    - OS X de 64 bits con Node.js 4.x

Como resolver mi problema

Al ir a la carpeta del proyecto y luego ejecutar:

npm rebuild node-sass

66
Trabajó inicialmente pero todavía tenía problemas. Entonces, fui a /usr/local/lib/usar CMD + SHIFT + G en el buscador y renombré la carpeta node-sass. Entonces corrió npm install node-sass -g. Eso arreglado. Estoy en Mac OS
IsmailS

Estaba enfrentando este problema después de actualizar nodejs a 8.xx y esto lo resolvió. ¡Muchas gracias! ¡Apreciado!
ChiragMS

2
No funciona Node: v10.7.0 nodo-Sass: v3.13.1. Dice que mi entorno actual es ventanas de 32 bits con el nodo 0.10.x que simplemente no es cierto.
Bardicer

Esto funcionó en Windows 7 con el nodo 10.14 LTS y npm 6.4.1.
santon

99
El primer paso sería eliminar su node_modulesy ejecutar en npm installlugar de reconstruir su nodo-sass.
Nikhil Nanjappa

295

Tenga en cuenta que estoy usando VS 2015, Windows 7 de 64 bits.

También funciona para VS 2017 y VS 2019 (de las respuestas a esta publicación)

Task Runner Explorer no puede cargar tareas

Para VS 2015

  • Vaya a: Herramientas> Opciones> Proyectos y soluciones> Herramientas web externas

Para VS 2017 (.3)

  • Herramientas> Opciones> Proyectos y soluciones> Administración de paquetes web> Herramientas web externas (por @nothrow)

En VS 2017 y 2019, también debe colocar $ (PATH) por encima de $ (VSINSTALLERDIR) \ Web \ External


  • Reordenar para que $ (PATH) esté por encima de $ (DevEnvDir) \ Extensions \ Microsoft \ Web Tools \ External

ingrese la descripción de la imagen aquí


Eliminar node_modulesy ejecutar npm instally luego npm rebuild node-sass no hizo nada .


55
Si está utilizando VS2015, definitivamente debe realizar los cambios descritos en esta respuesta. Probablemente sea todo lo que necesitará hacer para solucionar este problema.
Bonneville

12
Esto también funcionó para una nueva instalación de VS2017 también.
sarin

8
En VS2017.3, el camino hacia la configuración esTools > Options > Projects and Solutions > Web Package Management > External Web Tools
produce el

66
¡Maldita sea! Nunca lo resolvería ... todo para compilar estúpido sass con estúpido nodo en estúpido javascript
L.Trabacchin

77
Puede confirmar, esto todavía es una cosa en VS 2019.
JamesT

140

Tuve el mismo problema en un entorno Windows, y recibí el siguiente error:

Error: falta el enlace C: \ Development {ProjectName} \ node_modules \ node-sass \ vendor \ win32-ia32-47 \ binding.node
Node Sass no pudo encontrar un enlace para su entorno actual: Windows de 32 bits con Node.js 5 .x
Enlaces encontrados para los siguientes entornos:
   - Windows de 64 bits con Node.js 6.x

Ninguno de los npmcomandos que aparecen en las otras respuestas aquí ( npm install, npm rebuild node-sass, etc.) trabajó.

En cambio, tuve que descargar el enlace que faltaba y colocarlo en la carpeta de destino adecuada.

Los enlaces se pueden encontrar en git . /node_modules/node-sass/vendor/Haga coincidir el archivo con el nombre de la carpeta identificado después en su mensaje de error ('darwin-x64-11' en su caso, por lo que querrá el darwin-x64-11_binding.nodearchivo).

Cree la carpeta que falta en su proyecto ( /node_modules/node-sass/vendor/darwin-x64-11), copie el .nodearchivo en el nuevo directorio y cámbiele el nombre binding.node.

URL de lanzamiento de Node-sass: https://github.com/sass/node-sass/releases


3
También funcionó para mí, gracias! Intenté limpiar node_modules, eliminar caché, rifraf, reconstruir node-sass, reconstruir desde VS2015 en lugar de desde la línea de comandos con npm y al final esto lo solucionó.
Artur Carvalho el

1
@ JanCiołek Solo tuve esto una vez, así que nunca tuve que rehacer esto. No estoy seguro de si era específico de la versión, o si solo había un problema con la instalación específica, pero no encontré una solución mejor (las otras respuestas aquí no funcionaron para mí). Incompleto o no, parecía ser la solución necesaria para algunas variaciones de este problema.
Beofett

1
@Beofett Este error me comió mucho tiempo, hice todo lo que se mencionó en este hilo, pero olvidé ejecutar la compilación. ¡Gracias!
Jan Ciołek

44
Esta es la única respuesta que ese trabajador para mí, pero encontré mi enlace en github.com/sass/node-sass/releases en lugar de la URL vinculada. Saludos
clapas

2
Gracias @Beofett. Su respuesta me salvó para ejecutar mi proyecto Ionic en Windows y Mac OSX.
Marcus Crisostomo

138

Trabajó para mi:

Simplemente elimine la carpeta node-sass y ejecútela npm install.


44
Esto también funciona para mí. Claramente un conflicto de versión de nodo. ¡Gracias!
Liz Lemon

1
Tuve que eliminarlo en el siguiente directorio: C: \ Users \ your_user_name \ AppData \ Roaming \ npm-cache
Matt

77
Esto funcionó! npm rebuild node-sassno funciono para mi (Mac con WebStorm)
Jackpile

3
¡Esta es la única solución que funcionó para mí! npm rebuild node-sass --forcetampoco funcionó.
bigsee

Esto debe ser marcado como la respuesta. Hasta ahora no tenía idea de por qué mi solución seguía apuntando a una versión superior del nodo y seguía dándome mensajes de error sobre los nodosass. Tuve un paso en la tubería de Azure para forzar la versión del nodo a la que quiero. ¡Ahora puedo eliminar ese paso!
James Blackburn

117

Solo ejecuta: npm rebuild node-sass --force


Si lo anterior por alguna razón no funcionó para usted, intente esto:

  1. Eliminar node-sasscarpeta ennode_modules
  2. npm install

En mi caso tampoco se pudo encontrar Python.

El siguiente procedimiento resolvió el problema (Windows):

npm rebuild node-sass --force
-- cannot find python.exe, if you have Python installed, add it to your path:
set PYTHON=C:\Python27\Python.exe
-- else: download python "Windows x86-64-MSI" installer from https://www.python.org/downloads/release/python-2714/
-- install python
-- at installation start check: add env variable to path
-- after successfull installation:
npm rebuild node-sass --force
-- finished successfully

1
Lo anterior funcionó para mí, aunque ocurrió dos veces en dos aplicaciones diferentes en dos carpetas diferentes. La instalación de Python fue única (no se necesitaba cuando recibí el error por segunda vez en mi otra aplicación) y no necesité el comando final de compilación npm run (al menos no explícitamente) pero sí tuve que ejecutar la reconstrucción --force dos veces para mis dos aplicaciones.
Greg Trevellick

31

npm rebuild node-sass --force

O, si está utilizando node-sass dentro de un contenedor:

docker exec <container-id> npm rebuild node-sass --force

Este error ocurre cuando node-sass no tiene el enlace correcto para el sistema operativo actual.

Si usa Docker, este error generalmente ocurre cuando agrega node_modulesdirectamente al sistema de archivos del contenedor en su Dockerfile (o lo monta usando un volumen Docker).

La arquitectura del contenedor es probablemente diferente a su sistema operativo actual. Por ejemplo, instalé node-sass en macOS pero mi contenedor ejecuta Ubuntu.

Si fuerza a node-sass a reconstruirse desde el contenedor, node-sass descargará los enlaces correctos para el sistema operativo del contenedor.

Vea mi caso de repro para obtener más información.


1
Enfrentando el mismo problema con diferentes entornos: - dev bajo MacOS para pruebas unitarias - dev usando docker-compose (para interacciones completas del sistema) - prod bajo sistema operativo alpino; El montaje (o no) y npm install(o no) en la ventana acoplable es problemático cuando se tienen módulos dependientes de la arquitectura: obtener binarios darwin o linux dependiendo de dónde npm iocurra para los módulos NodeJS como node-sass, o@google-cloud/pubsub
Laurent

Gracias por mencionar la solución para Docker, ¡esto es exactamente lo que me solucionó!
Joshua Soileau

Tenía /node_modulesque estaba siendo atado montado en el contenedor en /app/node_modules. Aunque mi NODE_PATHera /node_modules(que existía) y debería haber estado en un lugar diferente ..., al azar comenzó a causar problemas. Me había instalado en ambos lugares para que mis desarrolladores de desarrollo para más bonitos funcionaran con mi vscode. gritos cosas raras. Gracias por la mención docker <3
Nick Brady

25

Tuve un problema similar y la razón fue que había dos versiones de Node instaladas en mi máquina: una "global" y otra a nivel de proyecto. Sass se compilará correctamente solo si la compilación Gulp se ejecuta en la versión 4.x de Node.js, así que asegúrese de actualizar la versión de Node que está utilizando.

PD: si elimina por completo la carpeta node_modules en su proyecto y la vuelve a compilar desde cero, npm descargará las dependencias correctas para su versión actual de sistema y nodo.


gracias a dios por esto De hecho, intenté degradar el nodo en mi macbook primero y luego me di por vencido después de media hora
Cpt. Senkfuss

17

en algunos casos necesita desinstalar e instalar la biblioteca node-sass. Tratar:

npm uninstall --save node-sass

y

npm install --save node-sass

mira esto, es mi trabajo, apila el enlace aquí



12

Para mi caso particular, ninguna de las respuestas anteriores funcionó. Entonces, lo que funcionó:

rm -rf node_modules 
rm -rf /tmp/* 
rm -rf /root/.npm/node-sass 
npm uninstall --save node-sass 
npm cache clean --force 

npm cache verify para comprobar que no queda nada en el caché

npm install

Aunque no he intentado reproducir la secuencia, fue una combinación de lo anterior que funcionó. Además también puedes probar:

npm install --save node-sass o npm install node-sass -g

npm rebuild node-sass
npm install bindings

11

* Respuesta relacionada con Docker aquí *

Responda si está viendo este problema, o algo similar, y está usando Docker.

Causa: al copiar sobre la estructura de archivos actual dentro del contenedor Docker, puede estar copiando sobre módulos de nodo de un sistema operativo a otro (por ejemplo, un contenedor de Mac a Linux).

Solución:

Agregue un .dockerignore, y dentro agregue:

node_modules

Esto hará npm installque se instalen los enlaces para el entorno de Docker, en lugar de su entorno de máquina local.


9

Yo tuve el mismo problema

    throw new Error(errors.missingBinary());
    ^

Error: Missing binding /path/to/project/node_modules/node-sass/vendor/linux-x64-47/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 5.x

Found bindings for the following environments:
  - Linux 64-bit with Node 0.10.x
  - Linux 64-bit with Node.js 5.x

Eso fue porque instalé npm usando una versión diferente de nodejs, intente eliminar la instalación de la carpeta node_modules y comenzar

cd your_project
rm -rf node_modules
npm install
npm start or gulp or whatever

Si está utilizando nvm do

nvm use stable // or your favorite version
// remove node_module directory
npm install
npm start or gulp or whatever

8

Tuve el mismo problema con el Nodo v7.4.0 Actual (Últimas características).

Leí un poco aquí y bajé el Nodo a v6.9.4 LTS y después de ejecutarlo npm rebuild node-sassdescargué el binario y todo comenzó a funcionar.

Descargando binario de https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node
Descarga completa.] -:
Binario guardado en D: \ xxx \ xxx-xxx \ node_modules \ node-sass \ vendor \ win32-x64-48 \ binding.node
Almacenamiento en caché binario a C: \ Users \ user \ AppData \ Roaming \ npm-cache \ node-sass \ 3.13.1 \ win32-x64-48_binding.node ``


7

node-sassEl módulo de nodo utiliza darwinun archivo binario que depende de la versión del nodo. Este problema ocurre cuando el archivo binario no se descarga o se descarga un archivo binario incorrecto.

Error de nodo sass

Reinstalar módulos de nodo descargará el binario esperado de node-sass: -

Para usuarios de Mac:

rm -rf node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

Para usuarios de Windows:

rmdir node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

pero para algunos usuarios, debe verificar la compatibilidad de su versión de nodo con la versión node-sass. Hágalo compatible con la tabla a continuación y ejecute los comandos anteriores nuevamente para solucionar este problema.

Versión de nodo-sass compatible con Node JS

Si el problema aún no se soluciona, verifique la lista de entornos compatibles con node-sass: - https://github.com/sass/node-sass/releases/


5

Para Visual Studio 2015/2017, haga clic derecho en su package.jsony haga clic en Restaurar paquetes.

Esto se asegurará de que se ejecute el npm de las Herramientas externas de Visual Studio Tools y el enlace se reconstruirá en función de eso.


Solución agradable y fácil, y la única que funcionó de las pocas anteriores que probé. ¡Gracias!
Eli Gassert

4

Esto sucede cuando en su estación de trabajo ejecuta una actualización de Node.js y está utilizando node-sass a nivel mundial.

Por lo tanto, debe desinstalar node-sass globalmente

npm uninstall -g node-sass

Y luego tienes que instalarlo globalmente, nuevamente

npm install -g node-sass

¡Buena explicación!
Michael Czechowski

@ Fay007 ¿podría proporcionar más información? ¿Tienes un error? Avísame
Domenico

4

Simplemente actualice su caché npm y:

npm cache clean --force  
npm install

Siempre funciona para mí en el mismo caso.

UPD: Su problema también puede deberse a la ausencia de un sasslib global.

npm install -g sass

4

Solo ejecuta el comentario, eso es todo.

npm rebuild node-sass

disfruta tu codificación ...


El OP dijo que lo intentó y no funcionó. Y yo también, y tampoco funcionó para mí. En cambio, tuve que degradar la versión del nodo que estaba ejecutando.
Adrian Redgers

4

Las dependencias posteriores para node-sass no se instalan sin el package.json dentro de node-sass

Ejecutarlo manualmente resuelto para mí

node node_modules/node-sass/scripts/install.js 

crédito: enlace


Gracias por esto, ¡esto resolvió mi problema perfectamente! :)
Lewis Clarke

Me alegra saber :)
Mukundhan

3

Esto suele suceder porque el entorno ha cambiado desde su ejecución npm install. La ejecución npm rebuild node-sassgenera el enlace para el entorno actual.


3

Soy un usuario de Windows 8, recientemente actualicé Node to v8.11.1y npm to v6.0.0y enfrenté un problema similar. Nada funcionó, npm install -g node-sass@latesto eliminar el node-sassdirectorio del proyecto node_modules/, ninguno de ellos funcionó para mí.

La mezcla laravel estaba lanzando un error de mi consola navegador diciendo un nodo que falta: win32-x64-57. No sé si es debido a una conexión a Internet más lenta o algo así, el nodo faltaba durante la actualización.

Por lo tanto, algunas de las respuestas me dirigieron a mirar los lanzamientos de Node-Sass, y encontré la solución.

  1. Paso 1: Verifique su versión de node-sass usando el comando: npm view node-sass version(el {your version}en el paso 4)
  2. Paso 2: llegar a las versiones de Node-Sass
  3. Paso 3: Obtenga su versión y encuentre el nodo que falta en los activos enumerados en cada versión, y descargue el archivo
  4. Paso 4: acceda a su PC C:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\y coloque el .nodearchivo descargado dentro de la carpeta de la versión

Y ya terminaste.

En mi caso, la versión del nodo-sass era 4.9.0y el nodo que faltaba win32-x64-57_binding.node, así que descargué el .nodearchivo de la versión 4.9.0 y seguí el paso 4.


2

Un error similar que encontré con Visual Studio 2015 Community Edition al crear una aplicación AspNetCore fue:

Node Sass could not find a binding for your current environment: Windows 32-bit with Node.js 5.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
    at module.exports ([..]\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> ([..]\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (module.js:397:26)
    at Object.Module._extensions..js (module.js:404:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> ([..]\node_modules\gulp-sass\index.js:187:21)
    at Module._compile (module.js:397:26)

Puede ver en el error anterior que la causa fue una discrepancia de versión en los enlaces para nodejs.

Node Sass no pudo encontrar un enlace para su entorno actual: Windows de 32 bits con Node.js 5.x

Enlaces encontrados para los siguientes entornos: - Windows de 64 bits con Node.js 6.x

La solución que encontré fue

  • Instale la versión de Windows de nodejs ,
  • Agregue la ruta para el nodo js (C: \ Archivos de programa \ nodejs) en Herramientas web externas (consulte la respuesta de Rob Scott),
  • Mueva la ruta de nodejs por encima de $ (PATH).

2

Esto funcionó para mí Eliminar node_modulesy luego restaurar paquetes de IDE y luegonpm rebuild node-sass


2

Tuve este problema al actualizar VS 2017 Professional a Enterprise

  1. Cerrar VS
  2. Eliminar node_modules
  3. VS abierto
  4. Haga clic derecho en package.json y seleccione 'restaurar paquetes'

2

Ninguna de las soluciones de instalación / reconstrucción resolvió el problema por mí (usando gulp).

Así es como lo resolví:

1) Descargue el archivo de enlace que falta del repositorio .

2) Cambiar el nombre del archivo binding.node.

3) Crear node_modules/node-sass/vendor/darwin-x64-11(ruta desde el mensaje de error) directorio si no existe.

4) Agregue el archivo de enlace a node_modules/node-sass/vendor/darwin-x64-11


2

Por favor escriba el siguiente comando en la carpeta raíz.

npm rebuild node-sass

100% funciona ...


2

Si su terminal / símbolo del sistema dice:

Nodo Sass no pudo encontrar un enlace 
para su entorno actual: 
OS X de 64 bits con el nodo 0.10.x

y ha probado los siguientes comandos, como:

npm cache clean --force 
módulos de nodo rm -rf 
npm install 
npm rebuild node-sass 
npm rebuild node-sass

y todavía NADA funciona ...

Simplemente ejecute esto en la terminal manualmente:

nodo node_modules / node-sass / scripts / install.js

ahora corre

npm start o inicio de hilo


1
¡Finalmente! Gracias. Esta es la única solución que me ha funcionado hasta ahora. He estado luchando por dos días. ¿Podría explicar cuál es la razón detrás?
burakcalik

1
¡SI SI SI! ¡Finalmente! Jackie - Muchas gracias.
user2051552

1

node-sass ejecuta un script de instalación para descargar el binario requerido. Si no hay variables de entorno, variables .npmrc o argumentos de proceso establecidos, entonces el binario se determina utilizando la plataforma de proceso actual, la arquitectura y la versión ABI del nodo. Por lo tanto, si ejecuta la instalación de nodo en una aplicación y luego intenta ejecutar node-sass en una aplicación con una plataforma / arquitectura / ABI diferente, el binario no se habrá descargado. La solución es descargar manualmente el binario o arreglar la versión binaria usando una variable de entorno (SASS_BINARY_NAME) o una variable .npmrc (sass_binary_name)

Puede ver la lógica para esto en la función getBinaryPath en node-sass \ lib \ extensions.js


1

Tuve el mismo problema. No pude encontrar ninguna solución de trabajo adecuada aquí, así que encontré la mía:

Inspirado por la solución @ Rob-Scott y otros señalando que podríamos tener 2 versiones de Node.js instaladas, fui C:\Program Files (x86)\nodejsy me di cuenta de que tenía instalada una versión de node.js además de la instalación predeterminada de VS.

Mi solución fue bastante simple:

  • Vaya a Herramientas> Opciones> Proyectos y soluciones> Administración de paquetes web> Herramientas web externas
  • Haga clic en add an entry(más a la izquierda del bloque de botones superior derecho)
  • Entrar C:\Program Files (x86)\nodejs, validar presionandoenter
  • Tráelo al principio de la lista
  • Disfrutar

Probablemente Node.js no esté bien configurado en la variable PATH, pero esta es mi solución muy rápida, mis 2 centavos :)


1

Primero tuve que elegir la nueva versión de nodo predeterminada nvm use ***o nvm install ***luego eliminar todo en node_modules en el proyecto y npm inuevamente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.