浏览器列表: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但没有一个解决了问题。我还重新安装了autoprefixer和browserslist,但没有一个解决了该问题。

如果我删除

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

从我的角度来看compilerconfig.json,一切正常,这意味着可能与autoprefixer有关。另外,我手动将软件包版本更改为最新版本,package.json然后重新安装,但没有运气。

Answers:


42

听起来您正在使用Visual Studio的Web编译器扩展。此处有一个未解决的问题: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-litebrowserslist 打开CMD(在里面C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X)并运行:npm i caniuse-lite browserslist

1
我做到了,现在没有该错误了,但是我遇到了一个新错误:插件错误:找不到模块'autoprefixer'。我尝试重新安装和更新autoprefixer,但仍然收到该错误。
Mehrdad Babaki

听起来像是另外一个问题。如果您可以在线链接到您的项目,或者可以将另一个有问题的项目放在一起,那么我很乐意进行研究。
Scott Kuhl

似乎当我尝试通过升级和重新安装自动前缀修复此问题时,我已经损坏了某些东西。幸运的是,今天Web Compiler进行了更新,并且我再次看到了该错误消息。我按照上述步骤操作,这次问题已解决。
Mehrdad Babaki

知道这个目录在Mac上的什么位置吗?
Safa Alai

35

试试这个它解决了我的问题 npx browserslist@latest --update-db


1
对于上下文:当我开始看到此错误时,我的IDE是VS Code,而我的JS项目仅包括Parcel,react和react-dom。以上选项均无效。此解决方案修复了我的问题。
克莱

在PhpStorm中表现出色。
Neolot

为VueJS工作
JOG

这对我有很大帮助,谢谢亲爱的5星
PacyL.js

31

对于Angular开发人员

虽然,我很晚才回答。我习惯检查使用😀的每个库的更改日志,并且在检查Angular CLI的发行说明时发现一个坏习惯,我发现它们昨天(2020年1月9日)发布了一个新补丁,可解决此问题。

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
我的/ TEMP文件夹中没有/ WebCompiler文件夹,就像这里建议的其他一些帖子一样,所以我运行了此命令行,似乎已经解决了该问题。
AppDreamer19年

13

以上答案的继续

与@MehrdadBabaki具有相同的“插件错误”。我卸载了Web编译器,删除了上面提到的AppData WebCompiler文件夹,然后重新打开VS2019并重新安装了Web编译器。

然后我再次进入WebCompiler文件夹,npm i autoprefixer@latest npm i caniuse-lite@latest然后执行npm i caniuse-lite browserslist@latest


只是更新autoprefixer,caniuse-lite,browserslist对我来说是很好的
cwhsu 19''Jul

9

npm --depth 9999 update为我解决了这个问题-显然是因为package-lock.json坚持使用过时的版本。


11
甚至npm --depth 99 update caniuse-lite browserslistJavaScript heap out of memory在我的项目中造成的,但npm --depth 20 update caniuse-lite browserslist运行速度很快并解决了我的情况下的错误。
Alexandr Nil

5

就我而言,我删除了caniuse-litebrowserslist文件夹从node_modules

然后,键入以下命令以安装软件包。

npm i -g browserslist caniuse-lite --save

工作正常。


1
我们必须添加npm i browserslist caniuse-lite --save
狡猾的

3

删除node_modulespackage-lock.jsonnpm i解决这个问题对我来说。


1
如果您具有悠久的软件包安装历史,则删除package-lock.json可能会导致一些重大更改错误,例如,一个正在运行和开发超过一年并且具有很多第三级依赖项的软件包的项目可能会使重大变化
kafinsalim

2

正如斯科特·库尔(Scott Kuhl)的回答中提到的那样,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>结束标记之前和导入构建Web编译器软件包之前。
    <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. 将项目重新加载到解决方案中。

谢谢!这对我来说是最好的解决方法。上述修复将每两天过时!
Bradly Bennison

2

我已通过逐步解决此问题:

  1. 去掉 node_modules
  2. 除去package-lock.json
  3. npm --depth 9999 update
  4. npm install

1

我也遇到了同样的问题

npm i autoprefixer@latest

它会在package.jsonpackage-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并修复了我的问题。


-1

我确实将节点版本从12降级到10

编辑

我发生此错误是因为我使用的是节点版本12。当我降级到版本10.16.5时,此错误停止。此错误发生在我的本地环境中,但是在生产和暂存中却没有发生。在prod和暂存节点中,版本是10.x,所以我只需要这样做,不需要更新package.json中的任何包。


2
欢迎来到SO!当您发布答案时,即使它是正确的,也请尝试解释一下。
DavidGarcíaBodego,

这不是一个坏答案……只需对其进行一点点编辑即可。
DavidGarcíaBodego,



-1

在当前项目中对我有用的最小解决方案

  • 创建反应应用程序项目
  • Ubuntu / * nix
  • 2020年
  • 节点14.7

删除 node_modules/browserslist项目中的目录

现在

npm run build

不再产生该消息


如果您只是删除目录,那么下次npm install/会发生什么npm ci
jonrsharpe

实际上,然后我遇到了css perfix的问题,最后我为该项目更新了create-create-app,一切都很好。
Michael Durrant

-3

就我而言,这很好...

sudo npm i -g browserslist caniuse-lite


2
强烈建议不要使用sudonpm install -g因为这可能会导致权限问题。如果您无法在全球范围内安装模块,则这确实是由已经存在的权限问题引起的。SO搜索将有助于解决问题。
Brady Dowling
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.