Список браузеров: caniuse-lite устарел. Запустите следующую команду `npm update caniuse-lite browserslist`


89

Недавно, когда я компилирую свои файлы scss, я получаю сообщение об ошибке. В сообщении об ошибке говорится:

Список браузеров: caniuse-lite устарел. Пожалуйста, запустите следующую командуnpm update caniuse-lite browserslist

Во-первых, как говорится в сообщении, я побежал, npm update caniuse-lite browserslistно это не устранило проблему. Я удалил весь каталог nod-modules и снова установил его, также я обновил всю папку, npm updateно ни один из них не решил проблему. Я также переустановил автопрефиксер и список браузеров, но ни один из них не решил проблему.

Если я удалю

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

по моему compilerconfig.json, все работает нормально, значит, вероятно, это связано с автопрефиксом. Кроме того, я вручную изменил версию пакета на последнюю версию package.jsonи переустановил, но безуспешно.

Ответы:


42

Похоже, вы используете расширение веб-компилятора Visual Studio. Здесь есть открытая проблема: https://github.com/madskristensen/WebCompiler/issues/413

В этом выпуске есть обходной путь:

  1. Закройте Visual Studio
  2. C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.XПерейдите к (X - версия WebCompiler)
  3. Удалите из node_modulesпапки следующие папки : caniuse-liteи browserslist Откройте CMD (внутри C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X) и запустите:npm i caniuse-lite browserslist

1
Я сделал это, и у меня больше нет этой ошибки, но я получил новую ошибку: Ошибка плагина: не удается найти модуль autoprefixer. Я пытался переустановить и обновить autoprefixer, но все равно получаю эту ошибку.
Mehrdad

Похоже, другая проблема. Если у вас есть ссылка на ваш проект в Интернете или вы можете собрать другой проект, в котором есть проблема, я буду рад взглянуть на него.
Скотт Кул

Кажется, когда я пытался решить проблему путем обновления и переустановки автопрефикса, я что-то сломал. К счастью, сегодня веб-компилятор обновился, и я снова увидел это сообщение об ошибке. Я выполнил описанные выше действия, и на этот раз проблема была устранена.
Mehrdad

Есть идеи, где находится этот каталог на Mac?
Сафа Алай,

35

Попробуйте это решить мою проблему npx browserslist@latest --update-db


1
Для контекста: моя IDE - это VS Code, а мой проект JS включал только Parcel, react и response-dom, когда я начал видеть эту ошибку. Ни один из вышеперечисленных вариантов не помог. Это решение исправило мою.
Klay

В PhpStorm отлично поработал.
Neolot

работал на VueJS
JOG

Это очень помогло мне, спасибо, дорогие 5 звезд
PacyL.js

Не работает в Windows `` C: \ projects \ ember-cli-typescript-blueprints> npx browserslist @ latest --update-db npm ERR! cb.apply не является функцией npm ERR! Полный журнал этого запуска можно найти в: npm ERR! c: \ npm \ cache_logs \ 2020-11-15T14_19_08_958Z-debug.log Ошибка установки ['browserslist @ latest'] с кодом 1 '' '
bryan.crotaz

31

Для разработчиков Angular

Хотя я отвечаю на это очень поздно. У меня есть плохая привычка проверять журналы изменений каждой библиотеки, которую я использую 😀, и, проверяя примечания к выпуску Angular CLI, я выяснил, что вчера (9 января 2020 года) они выпустили новый патч, который исправляет эту проблему.

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

Поэтому при запуске ng updateвы должны получать обновления для @angular/cli:

введите описание изображения здесь

И бег ng update @angular/cliисправит это предупреждение.

Ура!


19

Я нашел короткий путь, вместо того, чтобы идти дальше vs code appData/webCompiler, я добавил его как зависимость к моему проекту с этим cmd npm i caniuse-lite browserslist . Но вы можете установить его глобально, чтобы не добавлять его в каждый проект.

После установки вы можете удалить его из своего проекта package.jsonи сделатьnpm i .

Обновить:

В случае, если вышеуказанное решение не помогло. Ты мог бежатьnpm update , так как это обновит устаревшие / устаревшие пакеты.

Заметка:

После запуска обновления npm могут отсутствовать зависимости. Отследите ошибку и установите недостающие зависимости. Мой был nodemon, который я исправляюnpm i nodemon -g


4
У меня не было папки / WebCompiler в моей папке / TEMP, как в некоторых других сообщениях, которые здесь предлагались, поэтому я запустил эту командную строку и, похоже, решил проблему.
AppDreamer

13

Продолжение ответа выше .

Была такая же "ошибка плагина", как у @MehrdadBabaki. Я удалил веб-компилятор, удалил папку AppData WebCompiler, упомянутую выше, затем повторно открыл VS2019 и переустановил веб-компилятор.

ТОГДА я снова зашел в папку WebCompiler и сделал npm i autoprefixer@latest npm i caniuse-lite@latestиnpm i caniuse-lite browserslist@latest


просто обновите autoprefixer, caniuse-lite, список браузеров мне
подходит

9

npm --depth 9999 updateисправил проблему для меня - видимо, потому что package-lock.jsonнастаивал на устаревших версиях.


11
Даже npm --depth 99 update caniuse-lite browserslistвызвал JavaScript heap out of memoryв моем проекте, но npm --depth 20 update caniuse-lite browserslistработал быстро и решил ошибку в моем случае.
Alexandr Nil

5

В моем случае, я удалил вне caniuse-lite, browserslistпапки с node_modules.

Затем я набираю следующую команду, чтобы установить пакеты.

npm i -g browserslist caniuse-lite --save

работал нормально.


1
Пришлось добавитьnpm i browserslist caniuse-lite --save
подлый

3

Удаление node_modulesи package-lock.jsonи npm iрешить этот вопрос для меня.


1
удаление package-lock.json может привести к некоторой ошибке критических изменений, если у вас есть долгая история установки пакетов, например, проект, который работал и разрабатывался более года и имеет пакеты, которые имеют много зависимостей 3-го уровня, могут сделать
критические

2

Как упоминалось в ответе Скотта Куля, эта проблема упоминается в https://github.com/madskristensen/WebCompiler/issues/413

Для меня запуск команды npm i caniuse-lite- browserslist работало только около 1/2 дня, прежде чем это снова стало проблемой.

Следующее решение, упомянутое в сообщении, работает намного лучше. Это обновляет файл node.js, чтобы он использовался console.logвместо того, чтобы console.warnвозвращать эти ошибки.

Вы можете вручную обновить этот файл, расположенный в C: \ Users \ [Имя пользователя] \ AppData \ Local \ Temp \ WebCompiler [VersionNumber] \ node_modules \ browserslist

Или, чтобы это выполнялось автоматически, добавьте в файл .csproj следующее:

  1. Щелкните правой кнопкой мыши файл проекта и выберите «Выгрузить проект».
  2. Отредактируйте файл .csproj
  3. Вставьте следующее в файл проекта. Я вставил его в конец файла, перед </Project>закрывающим тегом и до того, как был импортирован пакет веб-компилятора сборки.
    <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. Перезагрузите проект обратно в решение.

Спасибо! Для меня это было лучшим решением. Вышеуказанные исправления устаревали бы через день!
Брэдли Беннисон,

2

Я исправил эту проблему, выполнив, шаг за шагом:

  1. удалять node_modules
  2. удалить package-lock.json,
  3. бегать npm --depth 9999 update
  4. бегать npm install

1

У меня тоже была такая же проблема, эта команда работает для меня

npm i autoprefixer@latest

Он автоматически добавляется потребность в зависимости package.jsonи package-lock.jsonфайл , как показано ниже:

package.json

"autoprefixer": "^9.6.5",

пакет-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

Я не совсем уверен, где была моя проблема, но я считаю, что это было потому, что я использовал одни и те же глобальные пакеты как от npm, так и от Yarn.

Я удалил все глобальные пакеты npm, затем при повторном использовании команд yarn проблема исчезла.

Чтобы увидеть установленные глобальные пакеты ...

для npm:

npm ls -g --depth=0

для пряжи:

yarn global list

Затем я удалил каждый пакет, который видел в списке npm, используя:

npm uninstall -g <package-name>

0

На Mac я удалил node_modules и package-lock.json, затем запустил npm install и устранил мою проблему.


-1

Я понизил версию узла с 12 до 10

РЕДАКТИРОВАТЬ

Эта ошибка возникла у меня, потому что я использовал версию узла 12. Когда я перехожу на версию 10.16.5, эта ошибка прекращается. Эта ошибка произошла в моем локальном env, но в prod и staging этого не происходит. В prod и промежуточном узле версия 10.x, поэтому я просто делаю это, и мне не нужно было обновлять какой-либо пакет в моем package.json


2
Добро пожаловать в SO! Когда вы публикуете ответ, даже если он правильный, постарайтесь немного объяснить.
Дэвид Гарсия Бодего

Это неплохой ответ ... просто отредактируйте его немного и готово.
Дэвид Гарсия Бодего

-1

Чтобы решить эту проблему, вы можете ввести следующую команду:

'npm -g обновление'



-1

Минимальное решение, которое сработало для меня в текущем проекте

  • Проект приложения create-react-app
  • Ubuntu / * nix
  • 2020 г.
  • Узел 14.7

удалить node_modules/browserslistкаталог в проекте

сейчас же

npm run build

больше не генерирует это сообщение


Если вы только что удалили каталог, что произойдет в следующий раз, когда вы npm install/ npm ci?
jonrsharpe

На самом деле я столкнулся с проблемой css perfix, наконец, я обновил приложение create-create-app для этого проекта, и все было хорошо.
Майкл Даррант,

-3

В моем случае это нормально работает ...

sudo npm i -g browserslist caniuse-lite


2
Настоятельно не рекомендуется использовать sudoс, npm install -gпоскольку это может вызвать проблемы с разрешениями. Если вы не можете установить модули глобально, это действительно вызвано уже существующими проблемами с разрешениями. Поиск SO поможет решить, как ее решить.
Брэди Даулинг,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.