O nó Sass não conseguiu encontrar uma ligação para o seu ambiente atual

499

Estou tendo problemas para criar um aplicativo porque o node-sass continua falhando com o erro.

ERRO na ligação ausente /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node O
nó Sass não pôde encontrar uma ligação para o seu ambiente atual: OS X 64 bits com nó 0.10.x

Eu tentei correr

npm rebuild node-sass

o que diz

Binário está bom; saindo.

Ao executar node -v, recebo a v6.2.2

O que é diferente do que diz o erro sass "Nó 0.10.x". Não consigo descobrir por que está recebendo a versão errada. Também tentei remover a pasta node_modules e executar o npm update ou npm install, os quais não resolveram o problema. Alguma ideia?

wazzaday
fonte
8
Você está usando um gerenciador de versão de nó como nvm? Se você estiver, algumas vezes, atrapalha alguns dos caminhos do módulo npm e eles tentam usar uma versão diferente da atual. Se não você poderia sempre tentar remover a node_modulespasta e instalar as dependências novamente
Vasil Dininski
2
Ei, eu não estou usando o nvm e tentei a etapa de remoção / reinstalação. sem sorte
wazzaday
qual é o seu ambiente de desenvolvimento? você usa o VS.NET 2105?
Mike Anderson
@VasilDininski Estou usando o NVM, o que devo fazer?
Subkhan Sarif
1
Abra o Visual Studio 2017 Vá para Ferramentas -> Opções ... Vá para Projetos e soluções -> Gerenciamento de pacotes da Web mova $ (PATH) para o topo da lista e feche a janela. No meu caso esta solução funcionou porque minha versão nó é 11.x
Alreadytakenindeed

Respostas:

721

Eu tive o mesmo problema

Há um erro no seu arquivo de gulpfile:
Erro: Ligação ausente E: \ allapp \ badshaindiancuisine \ node_module \ node-sass \ vendor \ win32-x64-46 \ binding.node O
Nó Sass não pôde encontrar uma ligação para o seu ambiente atual: Windows 64 -bit com Node.js 4.x

Ligações encontradas para o seguinte ambiente:
    - OS X de 64 bits com Node.js.x

Como resolver meu problema

Indo para a pasta do projeto e, em seguida, execute:

npm rebuild node-sass
Bipon Biswas
fonte
6
Trabalhou inicialmente, mas ainda estava tendo problemas. Então, fui /usr/local/lib/usar o CMD + SHIFT + G no localizador e renomei a pasta node-sass. Então correu npm install node-sass -g. isso consertou. Estou no Mac OS
IsmailS
Eu estava enfrentando esse problema depois de atualizar o nodejs para 8.xx e isso foi resolvido. Muito obrigado! Estimado!
ChiragMS
2
Não funciona Nó v10.7.0 nó-sass: v3.13.1. Diz que meu ambiente atual é de janelas de 32 bits com o nó 0.10.x, o que simplesmente não é verdadeiro.
Bardicer
Isso funcionou no Windows 7 com o nó 10.14 LTS e npm 6.4.1.
santon
9
O primeiro passo seria excluir o seu node_modulese executar em npm installvez de reconstruir o seu nó-sass.
Nikhil Nanjappa 28/02/19
295

Observe que estou usando o VS 2015, Windows 7 de 64 bits.

Também funciona para o VS 2017 e VS 2019 (das respostas a esta postagem)

O Task Runner Explorer não pode carregar tarefas

Para VS 2015

  • Vá para: Ferramentas> Opções> Projetos e soluções> Ferramentas externas da Web

Para VS 2017 (.3)

  • Ferramentas> Opções> Projetos e soluções> Gerenciamento de pacotes da Web> Ferramentas da Web externas (por @nothrow)

No VS 2017 e 2019, você também precisa colocar $ (PATH) acima de $ (VSINSTALLERDIR) \ Web \ External


  • Reordene para que $ (PATH) esteja acima de $ (DevEnvDir) \ Extensions \ Microsoft \ Web Tools \ External

insira a descrição da imagem aqui


Excluir node_modulese executar npm installe, em seguida npm rebuild node-sass , não fez nada .

Rob Scott
fonte
5
Se você estiver usando o VS2015, faça as alterações descritas nesta resposta. Provavelmente, tudo o que você precisará fazer para corrigir esse problema.
Bonneville
12
Isso também funcionou para uma nova instalação do VS2017 também.
sarin
8
No VS2017.3, o caminho para a configuração éTools > Options > Projects and Solutions > Web Package Management > External Web Tools
nothrow 6/17
6
eu nunca iria descobrir isso ... tudo para compilar estúpido sass com nó estúpido em javascript estúpido
L.Trabacchin
7
Pode confirmar, isso ainda é uma coisa no VS 2019. #
314
140

Eu tive o mesmo problema em um ambiente Windows, recebendo o seguinte erro:

Erro: Ligação ausente C: \ Development {ProjectName} \ node_modules \ node-sass \ vendor \ win32-ia32-47 \ binding.node O
nó Sass não pôde encontrar uma ligação para o seu ambiente atual: Windows 32 bits com Node.js 5 .x
Encontrações de ligações para os seguintes ambientes:
   - Windows de 64 bits com Node.js 6.x

Nenhum dos npmcomandos listados em outras respostas aqui ( npm install, npm rebuild node-sass, etc.) funcionou.

Em vez disso, tive que baixar a ligação ausente e colocá-la na pasta de destino apropriada.

As ligações podem ser encontradas no git . Combine o arquivo com o nome da pasta identificado depois /node_modules/node-sass/vendor/na sua mensagem de erro ('darwin-x64-11' no seu caso, para que você deseje o darwin-x64-11_binding.nodearquivo).

Crie a pasta ausente no seu projeto ( /node_modules/node-sass/vendor/darwin-x64-11), copie o .nodearquivo para o novo diretório e renomeie-o para binding.node.

URL de liberação do nó-sass: https://github.com/sass/node-sass/releases

Beofett
fonte
3
Também funcionou para mim, obrigado! Tentei limpar node_modules, excluir cache, rifraf, reconstruir node-sass, reconstruir a partir do VS2015 em vez da linha de comando com o npm e, no final, corrigi-lo.
Artur Carvalho
1
@ JanCiołek Eu só fiz isso acontecer uma vez, então nunca tive que refazer isso. Não tenho certeza se era específico da versão ou se havia apenas um problema com a instalação específica, mas não encontrei uma solução melhor (as outras respostas aqui não funcionaram para mim). Pesado ou não, parecia ser a solução necessária para algumas variações desse problema.
21418 Beofett
1
@Beofett Este bug comeu muito do meu tempo, eu fiz tudo o que foi mencionado neste tópico, mas eu esqueço de executar a compilação.
Jan Ciołek
4
Esta é a única resposta desse trabalhador para mim, mas encontrou minha ligação em github.com/sass/node-sass/releases em vez do URL vinculado. Cheers
clapas
2
Obrigado @Beofett. Sua resposta me salvou para executar meu projeto Ionic no Windows e Mac OSX.
Marcus Crisostomo
138

Trabalhou para mim:

Apenas exclua a pasta node-sass e execute npm install.

Codiee
fonte
4
Isso funciona para mim também. Claramente um conflito de versão do nó. Obrigado!
Liz Lemon
1
Teve que excluí-lo do seguinte diretório: C: \ Users \ seu_nome_do_usuário \ AppData \ Roaming \ npm-cache
Matt Matt
7
Isso funcionou! npm rebuild node-sassnão funcionou para mim. (Mac com WebStorm)
Jackpile
3
Esta é a única solução que funcionou para mim! npm rebuild node-sass --forcetambém não funcionou.
precisa saber é
Isso deve ser marcado como a resposta. Até agora, eu não tinha idéia do por que minha solução continuava segmentando uma versão superior do nó e continuava me dando uma mensagem de erro sobre o nó. Eu tive uma etapa no pipeline do Azure para forçar a versão do nó para a que eu quero. Agora eu posso remover essa etapa!
James Blackburn
117

Basta executar: npm rebuild node-sass --force


Se, por algum motivo, o acima não funcionou, tente o seguinte:

  1. Excluir node-sasspasta emnode_modules
  2. npm install

No meu caso, também não foi possível encontrar Python.

O procedimento a seguir resolveu o 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
Legendas
fonte
1
O exemplo acima funcionou para mim, embora tenha ocorrido duas vezes em dois aplicativos diferentes em duas pastas diferentes. A instalação do python foi única (não é necessária quando eu recebi o erro pela segunda vez no meu outro aplicativo) e não precisava do comando final npm run build (pelo menos não explicitamente), mas precisava executar a reconstrução --força duas vezes para os meus aplicativos.
22818 Greg Trevellick
31

npm rebuild node-sass --force

Ou, se você estiver usando node-sass dentro de um contêiner:

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

Este erro ocorre quando o node-sass não possui a ligação correta para o sistema operacional atual.

Se você usa o Docker, esse erro geralmente ocorre quando você adiciona node_modulesdiretamente ao sistema de arquivos do contêiner no seu Dockerfile (ou os monta usando um volume do Docker).

A arquitetura do contêiner provavelmente é diferente do seu sistema operacional atual. Por exemplo, instalei o node-sass no macOS, mas meu contêiner executa o Ubuntu.

Se você forçar a reconstrução do node-sass a partir do contêiner, o node-sass fará o download das ligações corretas para o sistema operacional do contêiner.

Veja meu caso de repro para saber mais.

Sherwood Callaway
fonte
1
Enfrentando o mesmo problema em ambientes diferentes: - dev no MacOS para testes de unidade - dev usando docker-compose (para interações completas do sistema) - prod no SO baseado em alpino; Montagem (ou não) e npm install(ou não) na janela de encaixe é problemático quando se tem módulos dependentes de arquitetura: recebendo darwin ou Linux binários dependendo de onde você npm iIsso acontece para os módulos NodeJS como node-sass, ou@google-cloud/pubsub
Laurent
Obrigado por mencionar a solução para o docker, foi exatamente isso que corrigiu para mim!
Joshua Soileau
Eu tinha o /node_modulesque estava sendo montado no contêiner em /app/node_modules. Mesmo que meu NODE_PATHfoi /node_modules(que não existia) e deveria ter sido em um local diferente .., começou aleatoriamente causando problemas. Eu tinha instalado em ambos os lugares para que meus deps de desenvolvedores por mais bonitos funcionassem com meu vscode. gritos. coisa estranha. Obrigado pela menção estivador <3
Nick Brady
25

Eu tive um problema semelhante e o motivo foi que havia duas versões do Node instaladas na minha máquina: uma "global" e outra no nível do projeto. O Sass criará corretamente apenas se a versão Gulp estiver sendo executada na versão Node.j 4.x, portanto, atualize a versão do Node que você está usando.

PS: Se você remover completamente a pasta node_modules do seu projeto e reconstruí-la do zero, o npm fará o download das dependências corretas para a versão atual do sistema e do nó.

Rocío García Luque
fonte
graças a deus por isso. Na verdade, tentei fazer o downgrade do nó no meu macbook primeiro e depois desisti após meia hora
Cpt. Senkfuss 15/02/19
17

em alguns casos, você precisa desinstalar e instalar a biblioteca node-sass. Tentar:

npm uninstall --save node-sass

e

npm install --save node-sass

olha isso seu trabalho pra mim, link Stack aqui

core114
fonte
13

Tente adicionar o sufixo --force

npm rebuild node-sass --force
user3890355
fonte
1
Trabalhou para mim. Obrigado.
Jpcmf80
12

Para o meu caso em particular, nenhuma das respostas acima funcionou. Então, o que funcionou:

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 verificar se não resta nada no cache

npm install

Embora eu não tenha tentado reproduzir a sequência, foi uma combinação das anteriores que funcionou. Além disso, você também pode tentar:

npm install --save node-sass ou npm install node-sass -g

npm rebuild node-sass
npm install bindings
Alex Pandrea
fonte
11

* Resposta relacionada ao Docker aqui *

Responda se você está vendo esse problema ou algo semelhante e está usando o Docker.

Causa: Ao copiar a estrutura de arquivos atual para dentro do contêiner do Docker, você pode copiar os módulos de nó de um sistema OS para outro (por exemplo, um contêiner do Mac para o Linux).

Solução:

Adicione .dockerignoreae adicione dentro:

node_modules

Isso fará com que um npm installinstale as ligações para o ambiente da janela de encaixe, em vez do ambiente da máquina local.

farrellw
fonte
9

Eu tive o mesmo 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

Isso foi porque eu instalei o npm usando uma versão diferente do nodejs, tente excluir a pasta node_modules instalando e iniciando

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

Se você estiver usando o nvm

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

Eu tive o mesmo problema com o nó v7.4.0 atual (recursos mais recentes).

Fiz algumas leituras aqui e rebaixei o Node para a v6.9.4 LTS e, depois de executá- npm rebuild node-sasslo, baixei o binário e tudo começou a funcionar.

Download do binário em https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node
Download concluído.] -:
Binário salvo em D: \ xxx \ xxx-xxx \ node_modules \ node-sass \ vendor \ win32-x64-48 \ binding.node
Armazenando em cache binário em C: \ Users \ user \ AppData \ Roaming \ npm-cache \ node-sass \ 3.13.1 \ win32-x64-48_binding.node `

krankuba
fonte
7

node-sassO módulo do nó usa um darwinarquivo binário que depende da versão do nó. Esse problema ocorre quando o arquivo binário não é baixado ou o arquivo binário errado é baixado.

Erro sass do nó

A reinstalação dos módulos do nó fará o download do binário esperado do node-sass: -

Para usuários de Mac:

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

Para usuários do Windows:

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

mas para alguns usuários, é necessário verificar a compatibilidade da versão do nó com a versão node-sass. Torne-o compatível usando a tabela abaixo e execute os comandos acima novamente para corrigir esse problema.

Versão do nó-sass compatível com o nó JS

Se o problema ainda não tiver sido corrigido, verifique a lista de ambientes suportados por node-sass: - https://github.com/sass/node-sass/releases/

Balram Singh
fonte
5

Para o Visual Studio 2015/2017, clique com o botão direito do mouse em package.jsone clique em Restaurar Pacotes.

Isso garantirá que o npm das Ferramentas externas das Ferramentas do Visual Studio seja executado e a ligação será reconstruída com base nisso.

Sivasankar Sabapathy sivasunke
fonte
Solução agradável e fácil, e a única que funcionou com as poucas acima que eu tentei. Obrigado!
Eli Gassert
4

Isso acontece quando em sua estação de trabalho você executa uma atualização do Node.js e está usando o node-sass globalmente.

Portanto, você deve desinstalar o node-sass globalmente

npm uninstall -g node-sass

E então você tem que instalá-lo globalmente, novamente

npm install -g node-sass
Domenico
fonte
Boa explicação!
Michael Czechowski
@ Fay007 você poderia fornecer mais informações? Você tem algum erro? Deixe-me saber #
Domenico
4

Apenas atualize seu cache npm e:

npm cache clean --force  
npm install

Sempre funciona para mim no mesmo caso.

UPD: Seu problema também pode ser devido à ausência de um sasslib global.

npm install -g sass
AlexK
fonte
4

Basta executar o comentário.

npm reconstruir node-sass

aproveite sua codificação ...

Mahendren
fonte
O OP disse que tentou isso e não funcionou. E eu também, e também não funcionou para mim. Em vez disso, tive que fazer o downgrade da versão do nó que estava executando.
Adrian Redgers
4

As dependências de postagem para o node-sass não estão sendo instaladas sem o package.json dentro do node-sass

Executá-lo resolvido manualmente para mim

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

crédito: link

Mukundhan
fonte
Obrigado por isso, isso resolveu meu problema perfeitamente! :)
Lewis Clarke
Fico feliz em saber :)
Mukundhan 15/01
3

Isso geralmente acontece porque o ambiente mudou desde a execução npm install. A execução npm rebuild node-sasscria a ligação para o ambiente atual.

Kisz Na
fonte
3

Eu sou um usuário do Windows 8, atualizei recentemente o nó para v8.11.1e npm v6.0.0e enfrentei um problema semelhante. Nada funcionou - npm install -g node-sass@latestou excluiu o node-sassdiretório do projeto node_modules/- nenhum deles funcionou para mim.

O Mix Laravel estava jogando um erro ao meu console do navegador dizendo um nó faltando: win32-x64-57. Não sei se é devido a uma conexão mais lenta à Internet ou algo assim, o nó estava ausente durante a atualização.

Portanto, algumas das respostas me levaram a analisar os lançamentos do Node-Sass, e eu encontrei a solução.

  1. Etapa 1: verifique sua versão do node-sass usando o comando: npm view node-sass version( {your version}na etapa 4)
  2. Etapa 2: obtenha as versões do Node-Sass
  3. Etapa 3: obtenha seu release e encontre o nó ausente nos ativos listados em cada release e faça o download do arquivo
  4. Etapa 4: acesse o seu PC C:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\e coloque o .nodearquivo baixado na pasta da versão

E você terminou.

No meu caso, a versão node-sass era 4.9.0e o nó ausente era win32-x64-57_binding.node, então baixei o .nodearquivo da versão 4.9.0 e segui a etapa 4.

Mayeenul Islam
fonte
2

Um erro semelhante que encontrei no Visual Studio 2015 Community Edition ao criar um aplicativo AspNetCore foi:

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)

Você pode ver o erro acima que a causa foi de uma incompatibilidade de versão nas ligações para nodejs.

O Nó Sass não conseguiu encontrar uma ligação para o seu ambiente atual: Windows de 32 bits com Node.js. 5.x

Ligações encontradas para os seguintes ambientes: - Windows de 64 bits com Node.js.x

A solução que encontrei foi

  • Instale a versão do windows do nodejs ,
  • Adicione o caminho para o nó js (C: \ Arquivos de programas \ nodejs) em Ferramentas externas da Web (consulte a resposta de Rob Scott),
  • Mova o caminho do nodejs acima de $ (PATH).
Matt R
fonte
2

Isso funcionou para mim Excluindo node_modulese restaurando pacotes do IDE e, em seguida,npm rebuild node-sass

Nouman Bhatti
fonte
2

Eu tive esse problema ao atualizar do VS 2017 Professional para Enterprise

  1. Fechar VS
  2. Excluir node_modules
  3. Open VS
  4. Clique com o botão direito do mouse em package.json e selecione 'restore packages'
dk_french032
fonte
2

Nenhuma das soluções de instalação / reconstrução resolveu o problema para mim (usando o gulp).

Aqui está como eu resolvi isso:

1) Faça o download do arquivo de ligação ausente do repositório .

2) Renomeie o arquivo binding.node.

3) Crie o node_modules/node-sass/vendor/darwin-x64-11diretório (caminho da mensagem de erro) se ele não existir.

4) Adicione o arquivo de ligação ao node_modules/node-sass/vendor/darwin-x64-11

Don P
fonte
2

Por favor, escreva o comando abaixo na Pasta Raiz.

npm reconstruir node-sass

100% funciona ...

Yogesh Kumar
fonte
2

Se o seu terminal / prompt de comando indicar:

O nó Sass não pôde encontrar uma ligação 
para o seu ambiente atual: 
OS X de 64 bits com nó 0.10.x

e você tentou os seguintes comandos, como:

npm cache clean --force 
módulos de nós rm -rf 
instalação npm 
npm reconstruir node-sass 
npm reconstruir node-sass

e ainda nada funciona ..

Basta executar isso no terminal manualmente:

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

agora corra

início npm ou início do fio

Jackie Santana
fonte
1
Finalmente! Obrigado. Esta é a única solução que funcionou para mim até agora. Estou lutando há dois dias. Você poderia, por favor, explicar qual é a razão por trás?
burakcalik
1
SIM SIM SIM! Finalmente! Jackie - Muito obrigada.
user2051552
1

O node-sass executa um script de instalação para baixar o binário necessário. Se não houver variáveis ​​de ambiente, variáveis ​​.npmrc ou argumentos do processo configurados, o binário será determinado usando a plataforma do processo atual, a arquitetura e a versão ABI do Nó. Portanto, se você executar a instalação do nó em um aplicativo e tentar executar o node-sass em um aplicativo com uma plataforma / arquitetura / ABI diferente, o binário não será baixado. A solução é baixar manualmente o binário ou corrigir a versão binária usando uma variável de ambiente (SASS_BINARY_NAME) ou uma variável .npmrc (sass_binary_name)

Você pode ver a lógica disso na função getBinaryPath em node-sass \ lib \ extensions.js

Tevin
fonte
1

Eu tive o mesmo problema. Não encontrei nenhuma solução de trabalho adequada aqui, então encontrei a minha:

Inspirado pela solução @ Rob-Scott e outros argumentos de que poderíamos ter duas versões do Node.js instaladas, fui C:\Program Files (x86)\nodejse percebi que tinha uma versão do node.js. instalada além da instalação padrão do VS.

Minha solução foi bastante simples:

  • Vá para Ferramentas> Opções> Projetos e soluções> Gerenciamento de pacotes da Web> Ferramentas da Web externas
  • Clique em add an entry(mais à esquerda do bloco de botões superior direito)
  • Digite C:\Program Files (x86)\nodejs, valide pressionandoenter
  • Coloque-o no topo da lista
  • Aproveitar

Provavelmente o Node.js não está definido bem na variável PATH, mas esta é a minha solução muito rápida de trabalho, meus 2 centavos :)

Jean
fonte
1

Eu tive que escolher primeiro a nova versão do nó padrão nvm use ***ou, em nvm install ***seguida, remover tudo em node_modules no projeto e npm inovamente.

obotezat
fonte