浏览器列表:caniuse-lite已过时。请运行下一个命令`npm update caniuse-lite browserslist`。

最近,当我编译我的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然后重新安装,但没有运气。

路易Gil2020/03/19 09:47:24

我不确定我的问题在哪里,但是我相信这是因为我同时使用了npm和Yarn中的全局包。

我卸载了所有npm全局软件包,然后再次使用yarn命令时,问题就消失了。

要查看已安装的全局软件包...

对于npm:

npm ls -g --depth=0

对于纱线:

yarn global list

然后,我使用以下命令卸载了在npm列表中看到的每个软件包:

npm uninstall -g <package-name>
前端小胖JinJin2020/03/19 09:47:24

我也遇到了同样的问题

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"
    },

...

}
飞云Green2020/03/19 09:47:24

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

编辑

我发生此错误是因为我使用的是节点版本12。当我降级到版本10.16.5时,此错误停止。此错误发生在我的本地环境中,但是在生产和暂存中却没有发生。在prod和暂存节点中,版本为10.x,因此我只需执行此操作,而无需更新package.json中的任何软件包。

逆天小胖2020/03/19 09:47:24

就我而言,这很好...

sudo npm i -g browserslist caniuse-lite

Harry逆天2020/03/19 09:47:24

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

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

npm i -g browserslist caniuse-lite --save

工作正常。

JinJin宝儿2020/03/19 09:47:24

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

小宇宙达蒙2020/03/19 09:47:24

正如斯科特·库尔(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. 将项目重新加载到解决方案中。
Itachi蛋蛋2020/03/19 09:47:23

以上答案的继续

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

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

西里小哥2020/03/19 09:47:23

我发现了一条捷径,而不是经历了一步vs code appData/webCompiler,我将此快捷方式添加为使用此cmd的 项目依赖项npm i caniuse-lite browserslist但是您可以全局安装它,以避免将其添加到每个项目中。

安装后,您可以将其从项目中删除package.json并执行npm i

阳光Tony2020/03/19 09:47:23

对于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将解决此警告。

干杯!

达蒙JinJin路易2020/03/19 09:47:23

听起来您正在使用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