Recentemente, mudei para o Nó v.6 e ele começou a criar mais e mais problemas ao executar builds normais grunt / gulp / webpack
Por exemplo:
$ gulp
[14:02:20] Local gulp not found in ~/_Other/angular-2-ts/angular2-seed
[14:02:20] Try running: npm install gulp
enquanto o gulp e todos os outros plugins e módulos estão instalados (e até reinstalados via rm -rf node_modules
) na pasta / node_modules.
A maioria desses erros tem linhas como
(node:42) fs: re-evaluating native module sources is not supported.
If you are using the graceful-fs module,
please update it to a more recent version.
com 42 como número arbitrário
Como nessa edição que enviei - no repo angular2-seed https://github.com/mgechev/angular2-seed/issues/902
O que tentei fazer é fazer o downgrade para o Nó v.5 via n ( https://www.npmjs.com/package/n ) - funcionou. Em seguida, remova todas as node_modules
pastas e faça
npm info graceful-fs -v
3.3.6
ok, vamos atualizar ou remover e instalar novos:
npm i graceful-fs@latest
npm i graceful-fs@4.1.4
sudo npm i graceful-fs@4.1.4 -g
todos os resultados em
npm info graceful-fs -v
3.3.6
Então agora eu estou preso no graceful-fs 3.3.6 ou pior ainda em algumas dependências de módulos, como
$ angular2-seed
$ npm install
//other lines..
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before
will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0
as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
Qual poderia ser a estratégia aqui:
- Corrigir manualmente todos os deps que contêm graceful-fs <4.0.0?
- Existe alguma opção global para usar a versão específica do pacote?
- Reinstalar tudo?
fonte
Respostas:
Eu tive esse problema e consegui corrigir isso atualizando
npm
Antes da atualização, o resultado de
npm info graceful-fs | grep 'version:'
era:Após a atualização, o resultado é:
fonte
nvm use v6.2.1
npm info graceful-fs -v
retorna a versão do npm (é igual à execuçãonpm -v
) e NOT graceful-fs. Para obter a versão graciosa-fs, use algo comonpm info graceful-fs | grep version:
.rm -rf node_modules && npm install
na pasta inicial do projeto.Digite
npm list graceful-fs
e você verá quais versões do graceful-fs estão atualmente instaladas.No meu caso, obtive:
Como você pode ver no
gulp
fundo, depende de uma versão muito antiga. Infelizmente, não consigo atualizar isso usandonpm update graceful-fs
.gulp
precisaria atualizar suas dependências. Então, se você tem um caso como esse, está sem sorte. Mas você pode abrir um problema para o projeto com a dependência antiga - ou sejagulp
.fonte
gulp
não vai mudá-lo na versão 3, mas apenas na versão 4: github.com/gulpjs/gulp/issues/1571graceful-fs
dependência do módulo pré-v4 vinha denpm
si mesma (versão 3.10.3) via[email protected]
. Não vi isso até listar as dependências globaisgraceful-fs
usandonpm list -g graceful-fs
.Resolvido esse bug com reinstalar gulp
fonte
Excluindo o conteúdo da pasta node_modules e executando
resolveu o problema para mim!
fonte
Conforme descrito aqui , você também pode tentar o comando
Isso foi corrigido para mim, depois que as outras etapas não produziram resultados totalmente (além de atualizar tudo).
fonte
Apenas para salientar que o cordova traz seu próprio npm com a dependência do graceful-fs; portanto, se você usar o Cordova, verifique se ele é o mais recente, para obter os mais recentes graceful-fs.
fonte
Consegui corrigi-lo da seguinte maneira:
package.json
npm install
fonte
se você estiver executando o nvm, poderá querer executar
nvm use <desired-node-version>
Isso mantém o nó consistente com o npmfonte
Ou tente atualizar
node
:Se estiver instalado com
brew
(como no meu caso).sudo npm update -g npm
não resolveu o "mesmo" problema para mim.fonte
O relatório diz: um arquivo está ausente em ... vendor / win32-x64-48 / binding.node
Procurei o arquivo binding.node e o encontrei em ...
https://github.com/sass/node-sass-binaries
Copie o arquivo correto com o nome binding.node e ele funciona.
fonte
No caso do meu projeto Cordova, desinstalar e instalar o cordova -g corrigiu o problema para mim.
fonte