Список браузерів: caniuse-lite застарілий. Будь ласка, запустіть наступну команду `npm update caniuse-lite browserslist`


89

Нещодавно, коли я компілюю свої файли scss, я отримую повідомлення про помилку. У повідомленні про помилку сказано:

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

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

Якщо я приберу

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

з мого compilerconfig.json, все працює нормально, а це означає, що, ймовірно, це пов'язано з автопрефіксом. Крім того, я вручну змінив версію пакета на останню версію package.jsonта перевстановив, але не пощастило.

Відповіді:


43

Схоже, ви використовуєте розширення Web Compiler 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
Я зробив це, і у мене більше немає цієї помилки, але я отримав нову помилку: Помилка плагіна: Не вдається знайти модуль "автопрефікс". Я намагався перевстановити та оновити автопрефікс, але все ще отримую цю помилку.
Мехрдад Бабакі

Звучить по-іншому. Якщо у вас є посилання на ваш проект в Інтернеті або ви можете створити інший проект, який має проблему, я був би радий переглянути його.
Скотт Куль

Здається, коли я намагався вирішити проблему, оновивши та перевстановивши автопрефікс, я щось зламав. На щастя, сьогодні веб-компілятор оновився, і я знову побачив це повідомлення про помилку. Я дотримувався наведених вище кроків, і цього разу проблему вирішено.
Мехрдад Бабакі

Будь-яка ідея, де цей каталог знаходиться на mac?
Сафа Алай

35

Спробуйте це вирішило мою проблему npx browserslist@latest --update-db


1
Для контексту: Моя IDE - це код VS, і мій проект JS включав Parcel, response і response-dom, лише коли я почав бачити цю помилку. Жоден із наведених варіантів не спрацював. Це рішення зафіксувало міну.
Клей

У PhpStorm чудово працював.
Neolot

працював на VueJS
JOG

Це мені так допомогло, дякую, шановні 5 зірок
PacyL.js

Помилки в Windows `` C: \ projects \ ember-cli-typecript-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 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


просто оновіть автопрефікс, caniuse-lite, список браузерів мені добре
cwhsu

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швидко запустити та вирішити помилку у моєму випадку.
Олександр Ніл,

6

У моєму випадку, я видалив поза caniuse-lite, browserslistпапки з node_modules.

Потім я набираю таку команду, щоб встановити пакунки.

npm i -g browserslist caniuse-lite --save

працював нормально.


2
Довелося додатиnpm i browserslist caniuse-lite --save
підлий

3

Видалення node_modulesі package-lock.jsonі npm iвирішити це питання для мене.


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

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 \ browserlistlist

Або, щоб це було зроблено автоматично, додайте у свій файл .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",

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

Я не зовсім впевнений, де була моя проблема, але я вважаю, що це було тому, що я використовував однакові глобальні пакети як від 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, і це виправило мою проблему.


0

Багато радять видалити package-lock.jsonабо yarn.lock. Це явно погана ідея!

Я використовую пряжу , і я був в змозі виправити цю проблему шляхом видалення тільки caniuse-dbі caniuse-liteзаписи на мою yarn.lockі робити yarn.

Не потрібно ламати основну функцію файлу блокування, видаляючи його.


-1

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

РЕДАГУВАТИ

Ця помилка сталася зі мною, оскільки я використовував версію вузла 12. Коли я переходжу до версії 10.16.5, ця помилка припиняється. Ця помилка трапилася в моєму місцевому середовищі, але в продюсері та постановці цього не відбувається. Версія вузла prod та staging - 10.x, тому я просто роблю це, і мені не потрібно було оновлювати будь-який пакет у своєму package.json


2
Ласкаво просимо до SO! Опублікувавши відповідь, навіть якщо вона правильна, спробуйте трохи пояснити.
Девід Гарсія Бодего,

Це не погана відповідь ... просто трохи її відредагуйте і готово.
Девід Гарсія Бодего,


-1

Якщо ви використовуєте пряжу:

yarn upgrade

Допоможіть мені


-1

Мінімальне рішення, яке працювало для мене для поточного проекту

  • Проект create-response-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.