Recentemente, comecei a receber esse erro em um projeto do Angular 8 (nó v10.16.0) em que estou trabalhando. A execução da lista de navegadores caniuse-lite de atualização do npm não fez nada
Portanto, removi o package-lock.json, removi o node_modules e executei a instalação do npm, mas o arquivo da lista de navegadores desapareceu. Novamente, quando executo o build, recebo a mesma mensagem: Lista de navegadores: caniuse-lite está desatualizada. Por favor, execute o próximo comandonpm update
Eu vejo este post no mesmo tópico: Lista de navegadores: caniuse-lite está desatualizado. Por favor, execute o próximo comando `npm update caniuse-lite browserslist` No entanto, ele fala sobre WebCompiler e autoprefixer, e eu não tenho idéia disso. Guie por favor
fonte
npm update caniuse-lite browserslist
?npm update
mas isso não resolveu o problema, apenas fiz minha versão datilografada alta para angular 8.Respostas:
Problema desatualizado do caniuse-lite resolvido executando os comandos abaixo.
fonte
npm cache clean
não funciona diretamente, pois é tratado automaticamente pelo npm nas versões mais recentes. Você quer que usemos--force
? Se sim, por favor, explique por que devemos colocar o cache no cache.npm install caniuse-lite@latest --save
TLDR: (pode parecer contra-intuitivo sem a explicação)
Explicação:
Esta mensagem de aviso ("canisuse-lite está desatualizada, por favor ...") é gerada por scripts na lista de navegadores durante a compilação / inicialização, se encontrar que a versão instalada do caniuse-lite é anterior a 2 versões da versão atual. Se nada no seu projeto mudou e você de repente vê essa mensagem ao iniciar ou compilar o projeto, provavelmente significa que houve uma atualização de versão recente do caniuse-lite.
Infelizmente, a mensagem de texto exibida pela lista de navegadores só será útil se você instalou o caniuse-lite como uma dependência do seu projeto. Muito provavelmente, você não fez. Portanto, quando você executa o 'npm update caniuse-lite' ou 'npm update' caniuse-lite @ latest '(ou' npm install '), o npm não vê esse pacote listado nas dependências do package.json, por isso ignora o pedido.
Como esses pacotes se tornaram dependências então? Quando seu projeto foi criado (talvez com app angularapp ou create-react-app ou similar para sua estrutura), o npm instalou a lista de navegadores como uma dependência das ferramentas necessárias, não como uma das dependências do seu projeto. Ao mesmo tempo, o caniuse-lite foi instalado como uma dependência da lista de navegadores. Posteriormente, quando o projeto foi atualizado, foi criado um arquivo package-lock.json que bloqueia todas as dependências para uma versão específica.
Se você pudesse atualizar as informações da versão na lista de dependências no package-lock.json, executar 'npm install' atualizaria esses pacotes no node_modules. Você não deve editar o pacote-lock.json manualmente. Em vez disso, a melhor maneira de fazer isso é:
Transforme temporariamente esses pacotes em uma dependência do seu projeto:
npm install caniuse-lite lista de navegadores
Além de atualizar o pacote para a versão mais recente, isso atualiza a lista de dependências no package.json e (o mais importante) package-lock.json.
Remova esses pacotes como dependências diretas do seu projeto:
npm uninstall caniuse-lite lista de navegadores
Como esses pacotes são usados por outras dependências, eles não são removidos do node_modules. Somente o package.json é atualizado para removê-los como uma dependência do projeto.
Confirme package-lock.json. Agora, qualquer outra pessoa pode simplesmente executar 'npm install' para obter os dois pacotes atualizados da lista de subdependências em package-lock.json e parar o aviso de mensagem.
fonte
npm update
) e com uma configuração angular limpa.caniuse-lite
e a mensagem se foi