TL: DR
Gulp 3.*
não funciona no Node 12.*
ou acima. Você deve fazer o downgrade do Node ou atualizar o Gulp.
Se você tiver pouco tempo, faça o downgrade do Node para a v11. * Ou abaixo; se você precisar de recursos mais recentes e tiver tempo para possivelmente corrigir uma carga de dependências quebradas, atualize o Gulp para 4. * ou superior!
Como outros já mencionaram, o Gulp 3.*
não é suportado no Node 12
ou acima, portanto, você deverá fazer o downgrade da sua versão do Node para 11.*
ou abaixo, OU atualizar seu Gulp para4.0
.
A melhor opção depende, em última análise, de quanto tempo você tem, pois a atualização do Gulp traz benefícios de arquivos gulpfiles mais limpos e controle interno sobre a execução de tarefas em série ou paralela , mas também depende da reescrita do arquivo gulpfile para uma nova sintaxe, e pode (leia-se: provavelmente + verá o final deste comentário) causar conflitos com algumas dependências.
Nó de downgrade
Essa é a opção mais fácil e rápida. Especialmente se você usar n ou nvm , pois eles permitem a instalação e troca muito rápidas entre as versões do Nó.
Instalando a versão do Node no N
n 10.16.0
Instalando a versão do nó no NVM
nvm install 10.16.0
Depois de fazer isso, talvez seja necessário reconstruir suas dependências do npm ou remover sua node_modules
pasta E seu package-lock.json
arquivo ou reinstalar suas dependências. Embora se você está apenas revertendo para uma versão de nó pré-existente, provavelmente deve estar bem.
Atualizando o Gulp
Como mencionado acima, essa é uma tarefa mais demorada, mas pode trazer benefícios a longo prazo. Por exemplo, o Node 12
agora introduziu suporte nativo para módulos ES (atrás de um sinalizador experimental) e suporte completo no Node 13
.
Pode ser necessário atualizar o Node para usá-lo, forçando-o a atualizar o Gulp. Ou você pode simplesmente querer os benefícios do uso do Gulp 4, pois oferece controle melhor e mais eficiente sobre as tarefas de gravação.
Já existem vários artigos sobre isso, então não vou detalhar mais os detalhes, mas para reiterar - esse não é um trabalho rápido . Dependendo do tamanho do seu projeto, pode haver alguma reescrita notável necessária e você pode ter dependências que quebram. Se você estiver com pouco tempo, deve optar simplesmente por fazer o downgrade do Node, pelo menos temporariamente.
Mas eu já tenho o Gulp 4 e ainda não funciona!
Se, como eu, você já estiver usando o Gulp 4+ (eu estava usando o Gulp 4.0.2
, originalmente no Nó 10) e atualizou recentemente (atualizei para Node 13.8.0
), você ainda está tendo o problema, pode ser porque uma dependência depende de um versão mais antiga do Gulp, e isso está ficando preso no pipeline.
No meu caso, gulp-combine-mq
era uma dependência usando o Gulp3.9.*
. Desabilitar esta tarefa no meu arquivo de gulp permitiu que o Gulp fosse executado novamente.
Se isso acontecer, você tem algumas opções: você pode,
- Vá sem o plugin, se não for absolutamente necessário
- Encontre uma alternativa,
- Corrija o plugin
Escusado será dizer que, se você possui vários plugins que dependem da versão mais antiga do Gulp - especialmente se esses plugins são vitais para a sua aplicação - é aqui que pode haver uma grande parte do tempo gasto na atualização do Gulp (daí os avisos acima).
Se isso acontecer, é melhor fazer o downgrade do Node, pelo menos até que os patches possam ser emitidos.