Browserslist: caniuse-lite non è aggiornato. Si prega di eseguire il prossimo comando `npm update caniuse-lite browserslist`


98

Recentemente, quando compilo i miei file scss ricevo un errore. Il messaggio di errore dice:

Browserslist: caniuse-lite non è aggiornato. Si prega di eseguire il comando successivonpm update caniuse-lite browserslist

Innanzitutto, come dice il messaggio, ho eseguito npm update caniuse-lite browserslistma non ha risolto il problema. Ho cancellato l'intera directory nod-modules e l'ho installato di nuovo, inoltre ho aggiornato l'intera cartella npm updatema nessuno di loro ha risolto il problema. Ho anche reinstallato l'autoprefixer e l'elenco dei browser, ma nessuno di loro ha risolto il problema.

Se rimuovo

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

dal mio compilerconfig.json, tutto funziona bene, il che significa che probabilmente è correlato all'autoprefixer. Inoltre, ho modificato manualmente la versione del pacchetto all'ultima versione package.jsone l' ho reinstallata, ma senza fortuna.

Risposte:


45

Sembra che tu stia utilizzando l'estensione Web Compiler di Visual Studio. C'è un problema aperto per questo trovato qui: https://github.com/madskristensen/WebCompiler/issues/413

C'è una soluzione alternativa pubblicata in quel numero:

  1. Chiudi Visual Studio
  2. C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.XVai a (X è la versione di WebCompiler)
  3. Elimina le seguenti cartelle dalla node_modulescartella: caniuse-litee browserslist Apri CMD (all'interno C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X) ed esegui:npm i caniuse-lite browserslist

1
L'ho fatto e non ho più quell'errore, ma ho ricevuto un nuovo errore: Errore plug-in: Impossibile trovare il modulo "autoprefixer". Ho provato a reinstallare e aggiornare l'autoprefixer ma ricevo ancora l'errore.
Mehrdad Babaki

Sembra un problema diverso. Se hai un link al tuo progetto online o puoi mettere insieme un altro progetto che presenta il problema, sarei felice di esaminarlo.
Scott Kuhl

Sembra che quando stavo cercando di risolvere il problema aggiornando e reinstallando l'autoprefixer avessi rotto qualcosa. Fortunatamente, oggi Web Compiler si è aggiornato e ho visto di nuovo quel messaggio di errore. Ho seguito i passaggi precedenti e questa volta il problema è stato risolto.
Mehrdad Babaki

Qualche idea su dove sia questa directory sul Mac?
Safa Alai

48

Prova questo ha risolto il mio problema npx browserslist@latest --update-db


2
Per il contesto: il mio IDE è VS Code e il mio progetto JS includeva solo Parcel, React e React-dom quando ho iniziato a vedere questo errore. Nessuna delle opzioni precedenti ha funzionato. Questa soluzione ha risolto il mio.
Klay

Non riesce su Windows `` C: \ projects \ ember-cli-typescript-blueprints> npx browserslist @ latest --update-db npm ERR! cb.apply non è una funzione npm ERR! Un registro completo di questa corsa può essere trovato in: npm ERR! c: \ npm \ cache_logs \ 2020-11-15T14_19_08_958Z-debug.log Installazione per ['browserslist @ latest'] non riuscita con codice 1 `` `
bryan.crotaz

31

Per sviluppatori angolari

Anche se rispondo molto tardi. Ho la cattiva abitudine di controllare i log delle modifiche di ogni libreria che utilizzo 😀 e mentre controllavo le note di rilascio di Angular CLI, ho scoperto che ieri (9 gennaio 2020) hanno rilasciato una nuova patch che risolve questo problema.

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

Quindi, quando corri ng update, dovresti ricevere aggiornamenti per @angular/cli:

inserisci qui la descrizione dell'immagine

E la corsa ng update @angular/clirisolverà questo avviso.

Saluti!


19

Ho trovato una scorciatoia piuttosto che passare vs code appData/webCompiler, l'ho aggiunta come dipendenza al mio progetto con questo cmd npm i caniuse-lite browserslist . Ma potresti installarlo globalmente per evitare di aggiungerlo a ogni progetto.

Dopo l'installazione, puoi rimuoverlo dal tuo progetto package.jsone farlo npm i.

Aggiornare:

Nel caso, la soluzione sopra non lo ha risolto. È possibile eseguire npm update, poiché ciò aggiornerà i pacchetti deprecati / obsoleti.

Nota:

Dopo aver eseguito l'aggiornamento npm, potrebbero mancare delle dipendenze. Traccia l'errore e installa le dipendenze mancanti. Il mio era nodemon, che ho risoltonpm i nodemon -g


4
Non avevo la cartella / WebCompiler nella mia cartella / TEMP come suggerivano altri post qui, quindi ho eseguito questa riga di comando e sembra che il problema sia stato risolto.
AppDreamer

13

Continuazione della risposta sopra .

Aveva lo stesso "errore di plug-in" di @MehrdadBabaki. Ho disinstallato il compilatore web, eliminato la cartella AppData WebCompiler menzionata sopra, quindi ho riaperto VS2019 e reinstallato il compilatore web.

POI sono andato di nuovo alla cartella WebCompiler e ho fatto npm i autoprefixer@latest npm i caniuse-lite@latestenpm i caniuse-lite browserslist@latest


basta aggiornare autoprefixer, caniuse-lite, browserslist è buono per me
cwhsu

10

npm --depth 9999 updaterisolto il problema per me - apparentemente perché package-lock.jsoninsisteva sulle versioni obsolete.


12
Anche npm --depth 99 update caniuse-lite browserslistcausato JavaScript heap out of memorynel mio progetto, ma npm --depth 20 update caniuse-lite browserslistcorri velocemente e ho risolto l'errore nel mio caso.
Alexandr Nil

6

Nel mio caso, ho cancellato i caniuse-lite, browserslistcartelle da node_modules.

Quindi digito il seguente comando per installare i pacchetti.

npm i -g browserslist caniuse-lite --save

ha funzionato bene.


2
Abbiamo dovuto aggiungerenpm i browserslist caniuse-lite --save
subdolo

3

L'eliminazione node_modulese package-lock.jsondi npm irisolvere il problema per me.


3
l'eliminazione di package-lock.json potrebbe comportare alcuni errori di modifiche sostanziali se si dispone di una lunga storia di installazione dei pacchetti, ad esempio un progetto che funzionava e sviluppato per più di un anno e ha pacchetti che hanno molte dipendenze di 3 ° livello potrebbero fare modifiche di rottura
kafinsalim

2

Come menzionato nella risposta di Scott Kuhl, questo problema è menzionato in https://github.com/madskristensen/WebCompiler/issues/413

Per me, l'esecuzione del comando ha npm i caniuse-lite- browserslistfunzionato solo per circa 1/2 giorno prima che fosse di nuovo un problema.

La seguente soluzione, menzionata nel post, funziona molto meglio. Questo aggiorna il file node.js in modo che venga utilizzato al console.logposto di console.warnquando restituisce questi errori.

È possibile aggiornare manualmente questo file situato in C: \ Users \ [Username] \ AppData \ Local \ Temp \ WebCompiler [VersionNumber] \ node_modules \ browserslist

Oppure, in modo che venga eseguito automaticamente, aggiungi quanto segue al tuo file .csproj:

  1. Fare clic con il tasto destro sul file di progetto e selezionare "Scarica progetto"
  2. Modifica il file .csproj
  3. Incolla quanto segue nel file di progetto. L'ho incollato verso la fine del file, prima del </Project>tag di fine e prima che il pacchetto del compilatore web di build fosse importato.
    <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. Ricarica il progetto nella soluzione.

Grazie! Questa è stata la soluzione migliore per me. Le correzioni di cui sopra diventerebbero obsolete a giorni alterni!
Bradly Bennison

2

Ho risolto questo problema facendo, passo dopo passo:

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

Fai attenzione con la rimozione package-lock.jsonpoiché potrebbe introdurre modifiche di rottura e dovrebbe essere evitato.
Liam

1

Ho avuto lo stesso problema anche questo comando funziona per me

npm i autoprefixer@latest

Ha aggiunto automaticamente la dipendenza necessaria in package.jsone package-lock.jsonfile come di seguito:

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

Non sono esattamente sicuro di dove fosse il mio problema, ma credo che fosse perché stavo usando gli stessi pacchetti globali sia da npm che da Yarn.

Ho disinstallato tutti i pacchetti globali npm, quindi quando ho utilizzato nuovamente i comandi di filato, il problema era scomparso.

Per vedere i pacchetti globali installati ...

per npm:

npm ls -g --depth=0

per filato:

yarn global list

Ho quindi disinstallato ogni pacchetto che ho visto nell'elenco npm, utilizzando:

npm uninstall -g <package-name>

1

La risposta di @Alexandr Nil è sicura ed è stata efficace per me

Scrivo come risposta completa perché è facile perdere il suo commento.

npm --depth 20 update caniuse-lite browserslist 

Questo va bene perché:

  1. Non vi è alcuna cancellazione di package-lock.json. L'eliminazione che ti rende vulnerabile a molti pacchetti che vengono aggiornati con modifiche sostanziali.

  2. È esplicito e molto limitato su quali cose devono essere aggiornate.

  3. Evita la profondità molto grande di 99 o 9999 che funzionerà su alcuni progetti e sistemi, ma non su altri. Se hai limitato la profondità a un numero troppo piccolo, non si romperà nulla. È possibile aumentare la profondità e riprovare, finché il progetto non viene compilato correttamente.


0

Molti consigliano di rimuovere package-lock.jsono il fileyarn.lock . Questa è chiaramente una cattiva idea!

Sto usando Yarn e sono stato in grado di correggere questo problema rimuovendo solo le voci caniuse-dbe caniuse-litedal mio yarn.locke facendo un fileyarn .

Non è necessario interrompere la funzione principale del file di blocco eliminandolo.


-1

Ho eseguito il downgrade della versione del nodo da 12 a 10

MODIFICARE

Questo errore si è verificato con me perché stavo utilizzando la versione del nodo 12. Quando eseguo il downgrade alla versione 10.16.5 questo errore si interrompe. Questo errore si è verificato nel mio ambiente locale, ma in prod e staging, non accade. In prod e la versione del nodo di staging è 10.x, quindi lo faccio e non ho bisogno di aggiornare alcun pacchetto nel mio package.json


2
Benvenuto in SO! Quando pubblichi una risposta, anche se è giusta, prova a spiegare un po '.
David García Bodego

Non è una cattiva risposta ... basta modificarlo un po 'e fatto.
David García Bodego

-1

Per risolvere il problema puoi digitare sotto il comando:

"npm -g update"



-1

Soluzione minima che ha funzionato per me per il progetto corrente

  • Un progetto crea-reagisci-app
  • Ubuntu / * nix
  • 2020
  • Nodo 14.7

Elimina node_modules/browserslist directory nel progetto

adesso

npm run build

non genera più quel messaggio


Se hai appena cancellato la directory, cosa succede la prossima volta che npm install/ npm ci?
jonrsharpe

in realtà ho poi riscontrato un problema con css perfix, finalmente ho aggiornato create-create-app per quel progetto e tutto andava bene.
Michael Durrant

-1

Sul Mac, ho eliminato node_modules e package-lock.json, quindi ho eseguito l'installazione di npm e ha risolto il mio problema.


1
Come accennato in precedenza, fai molta attenzione con la rimozione package-lock.json. Questo può introdurre modifiche di rottura e dovrebbe essere evitato.
Liam

-3

Nel mio caso funziona bene ...

sudo npm i -g browserslist caniuse-lite


2
Si consiglia vivamente di non utilizzare sudocon in npm install -gquanto ciò può causare problemi di autorizzazioni. Se non è possibile installare moduli a livello globale, ciò è effettivamente causato da problemi di autorizzazione già esistenti. Una ricerca SO ti aiuterà a risolverlo.
Brady Dowling
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.