Lista de navegadores: caniuse-lite está desatualizado. Por favor execute o próximo comando `npm update caniuse-lite browserslist`


89

Recentemente, ao compilar meus arquivos scss, recebo um erro. A mensagem de erro diz:

Lista de navegadores: caniuse-lite está desatualizado. Por favor, execute o próximo comandonpm update caniuse-lite browserslist

Primeiro, como diz a mensagem, eu corri, npm update caniuse-lite browserslistmas não corrigiu o problema. Excluí todo o diretório nod-modules e instalei novamente, também atualizei a pasta inteira, npm updatemas nenhum deles resolveu o problema. Eu também reinstalei o autoprefixer e a lista de navegadores, mas nenhum deles resolveu o problema.

Se eu remover

"options": {
      "autoPrefix": "> 1%"
    }

do meu compilerconfig.json, tudo funciona bem o que significa que provavelmente está relacionado ao autoprefixer. Além disso, mudei manualmente a versão do pacote para a versão mais recente package.jsone reinstalei, mas sem sorte.

Respostas:


42

Parece que você está usando a extensão Web Compiler do Visual Studio. Há um problema aberto para isso encontrado aqui: https://github.com/madskristensen/WebCompiler/issues/413

Existe uma solução alternativa postada para esse problema:

  1. Fechar Visual Studio
  2. Vá para C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X(X é a versão do WebCompiler)
  3. Exclua as seguintes pastas da node_modulespasta: caniuse-litee browserslist abra o CMD (dentro C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X) e execute:npm i caniuse-lite browserslist

1
Eu fiz isso e não tenho mais esse erro, mas recebi um novo erro: Erro de plug-in: Não é possível encontrar o módulo 'autoprefixer'. Tentei reinstalar e atualizar o autoprefixer, mas ainda recebo esse erro.
Mehrdad Babaki

Parece um problema diferente. Se você tiver um link para seu projeto on-line ou se puder montar outro projeto que tenha o problema, ficarei feliz em analisá-lo.
Scott Kuhl

Parece que quando estava tentando consertar o problema atualizando e reinstalando o autoprefixer eu havia quebrado algo. Felizmente, hoje o Web Compiler se atualizou e vi aquela mensagem de erro novamente. Eu segui as etapas acima e, desta vez, o problema foi corrigido.
Mehrdad Babaki

Alguma ideia de onde fica esse diretório no mac?
Safa Alai

35

Tente isso resolveu meu problema npx browserslist@latest --update-db


1
Para contexto: Meu IDE é VS Code, e meu projeto JS incluía apenas Parcel, react e react-dom quando comecei a ver este erro. Nenhuma das opções acima funcionou. Esta solução consertou a minha.
Klay

No PhpStorm funcionou muito bem.
Neolot

trabalhou para VueJS
JOG

Isso me ajudou muito, obrigado querido 5 estrelas
PacyL.js

Falha no Windows `` `C: \ projects \ ember-cli-typescript-blueprints> npx browserslist @ mais recente --update-db npm ERR! cb.apply não é uma função npm ERR! Um registro completo dessa execução pode ser encontrado em: npm ERR! c: \ npm \ cache_logs \ 2020-11-15T14_19_08_958Z-debug.log A instalação para ['browserslist @ mais recente'] falhou com o código 1 `` `
bryan.crotaz

31

Para desenvolvedores angulares

Embora, eu esteja respondendo muito tarde. Tenho o mau hábito de verificar os logs de alterações de cada biblioteca que uso 😀 e, ao verificar as notas de lançamento do Angular CLI, descobri que eles lançaram um novo patch ontem (9 de janeiro de 2020) que corrige esse problema.

https://github.com/angular/angular-cli/releases/tag/v8.3.22

Portanto, quando você for executar ng update, deverá obter atualizações para @angular/cli:

insira a descrição da imagem aqui

E a execução ng update @angular/clicorrigirá esse aviso.

Felicidades!


19

Eu encontrei um atalho em vez de seguir vs code appData/webCompiler, adicionei-o como uma dependência ao meu projeto com este cmd npm i caniuse-lite browserslist . Mas você pode instalá-lo globalmente para evitar adicioná-lo a cada projeto.

Após a instalação, você pode removê-lo de seu projeto package.jsone fazernpm i .

Atualizar:

No caso, a solução acima não resolveu. Você poderia corrernpm update , pois isso atualizaria pacotes obsoletos / desatualizados.

Nota:

Depois de executar a atualização do npm, pode haver dependências ausentes. Rastreie o erro e instale as dependências ausentes. O meu era nodemon, que conserto pornpm i nodemon -g


4
Eu não tinha a pasta / WebCompiler na minha pasta / TEMP, como alguns outros posts sugeriram, então executei esta linha de comando e parece ter corrigido o problema.
AppDreamer

13

Continuação da resposta acima .

Tinha o mesmo "erro de plugin" que @MehrdadBabaki. Desinstalei o compilador web, apaguei a pasta AppData WebCompiler mencionada acima, reabri o VS2019 e reinstalei o compilador web.

ENTÃO, fui para a pasta WebCompiler novamente e fiz npm i autoprefixer@latest npm i caniuse-lite@latestenpm i caniuse-lite browserslist@latest


basta atualizar autoprefixer, caniuse-lite, browserslist é bom para mim
cwhsu

9

npm --depth 9999 updatecorrigiu o problema para mim - aparentemente porque package-lock.jsonestava insistindo nas versões desatualizadas.


11
Até npm --depth 99 update caniuse-lite browserslistcausou JavaScript heap out of memoryno meu projeto, mas npm --depth 20 update caniuse-lite browserslistrodou rápido e resolveu o erro no meu caso.
Alexandr Nil

5

No meu caso, eu apaguei as caniuse-lite, browserslistpastas denode_modules .

Então eu digito o seguinte comando para instalar os pacotes.

npm i -g browserslist caniuse-lite --save

funcionou bem.


1
Tínhamos que adicionarnpm i browserslist caniuse-lite --save
sorrateiro

3

Excluindo node_modulese package-lock.jsone npm iresolver o problema para mim.


1
deletar o pacote-lock.json pode resultar em alguns erros de mudanças significativas se você tiver um longo histórico de instalação de pacotes, por exemplo, um projeto que estava funcionando e desenvolvido por mais de um ano e tem pacotes que têm muita dependência de terceiro nível. mudanças de última
hora

2

Conforme mencionado na resposta de Scott Kuhl, esse problema é mencionado em https://github.com/madskristensen/WebCompiler/issues/413

Para mim, executando o comando npm i caniuse-lite- browserslist funcionou apenas cerca de 1/2 dia antes de ser um problema novamente.

A solução a seguir, mencionada no post, funciona muito melhor. Isso atualiza o arquivo node.js para que ele use em console.logvez deconsole.warn ao retornar esses erros.

Você pode atualizar manualmente este arquivo localizado em C: \ Users \ [Nome de usuário] \ AppData \ Local \ Temp \ WebCompiler [VersionNumber] \ node_modules \ browserslist

Ou, para que seja feito automaticamente, adicione o seguinte ao seu arquivo .csproj:

  1. Clique com o botão direito no arquivo de projeto e selecione "Descarregar projeto"
  2. Edite o arquivo .csproj
  3. Cole o seguinte no arquivo de projeto. Colei no final do arquivo, antes da </Project>tag de finalização e antes de o pacote do compilador da web de construção ser importado.
    <ItemGroup>
        <PackageReference Include="MSBuildTasks" Version="1.5.0.235">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
        </PackageReference>
    </ItemGroup>
    <PropertyGroup>
        <TempFolder>$([System.IO.Path]::GetTempPath())</TempFolder>
    </PropertyGroup>
    <ItemGroup>
        <BrowsersListNodeJsFiles Include="$(TempFolder)\WebCompiler*\node_modules\browserslist\node.js" />
    </ItemGroup>
    <Target Name="BrowsersListWarningsAsInfo" BeforeTargets="WebCompile">
        <FileUpdate Files="@(BrowsersListNodeJsFiles)"
                    Regex="console.warn"
                    ReplacementText="console.log" />
    </Target>

  1. Recarregue o projeto na solução.

Obrigado! Esta foi a melhor solução para mim. As correções acima ficariam desatualizadas todos os dias!
Bradly Bennison

2

Resolvi esse problema fazendo, passo a passo:

  1. remover node_modules
  2. remover package-lock.json,
  3. corre npm --depth 9999 update
  4. corre npm install

1

Eu tive o mesmo problema também este comando funciona para mim

npm i autoprefixer@latest

Ele adicionou automaticamente a dependência de necessidade em package.jsonepackage-lock.json arquivo como abaixo:

package.json

"autoprefixer": "^9.6.5",

package-lock.json

"@angular-devkit/build-angular": {

...

"dependencies": {
    "autoprefixer": {
      "version": "9.4.6",
      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz",
      "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==",
      "dev": true,
      "requires": {
        "browserslist": "^4.4.1",
        "caniuse-lite": "^1.0.30000929",
        "normalize-range": "^0.1.2",
        "num2fraction": "^1.2.2",
        "postcss": "^7.0.13",
        "postcss-value-parser": "^3.3.1"
      }
    },

...

  }

...

"autoprefixer": {
    "version": "9.6.5",
    "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.5.tgz",
    "integrity": "sha512-rGd50YV8LgwFQ2WQp4XzOTG69u1qQsXn0amww7tjqV5jJuNazgFKYEVItEBngyyvVITKOg20zr2V+9VsrXJQ2g==",
    "requires": {
      "browserslist": "^4.7.0",
      "caniuse-lite": "^1.0.30000999",
      "chalk": "^2.4.2",
      "normalize-range": "^0.1.2",
      "num2fraction": "^1.2.2",
      "postcss": "^7.0.18",
      "postcss-value-parser": "^4.0.2"
    },

...

}

1

Não tenho certeza de onde estava meu problema, mas acredito que era porque estava usando os mesmos pacotes globais do npm e do Yarn.

Desinstalei todos os pacotes globais npm e, ao usar os comandos do yarn novamente, o problema desapareceu.

Para ver os pacotes globais instalados ...

para npm:

npm ls -g --depth=0

para fios:

yarn global list

Em seguida, desinstalei cada pacote que vi na lista de npm, usando:

npm uninstall -g <package-name>

0

No Mac, excluí node_modules e package-lock.json, depois executei npm install e ele corrigiu meu problema.


-1

Eu fiz downgrade da versão do nó de 12 para 10

EDITAR

Este erro ocorreu comigo porque eu estava usando o nó versão 12. Quando eu fiz downgrade para a versão 10.16.5, esse erro para. Este erro aconteceu em meu env local, mas em prod e staging, isso não acontece. A versão do nó de produção e teste é 10.x, então acabei de fazer isso e não precisei atualizar nenhum pacote em meu package.json


2
Bem-vindo ao SO! Quando você postar uma resposta, mesmo que esteja certa, tente explicar um pouco.
David García Bodego

Não é uma resposta ruim ... apenas edite um pouco e pronto.
David García Bodego

-1

Para corrigir o problema, você pode digitar o comando abaixo:

'npm -g update'



-1

Solução mínima que funcionou para mim para o projeto atual

  • Um projeto criar-reagir-app
  • Ubuntu / * nix
  • 2020
  • Nó 14,7

excluir node_modules/browserslist diretório no projeto

agora

npm run build

não gera mais aquela mensagem


Se você acabou de deletar o diretório, o que acontece na próxima vez que você npm install/ npm ci?
Jonrsharpe

Na verdade, eu tive um problema com o css perfix, finalmente atualizei o create-create-app para esse projeto e tudo estava bom.
Michael Durrant

-3

No meu caso, isso funciona bem ...

sudo npm i -g browserslist caniuse-lite


2
É altamente recomendável não usar sudocom, npm install -gpois isso pode causar problemas de permissão. Se você não pode instalar módulos globalmente, isso é realmente causado por problemas de permissão já existentes. Uma pesquisa de SO ajudará em como resolvê-lo.
Brady Dowling
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.