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

时间:2019-03-20 23:49:44

标签: npm sass autoprefixer web-compiler

最近,当我编译我的scss文件时,出现错误。错误消息显示:

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

首先,如消息所述,我运行了“ npm update caniuse-lite browserslist”,但没有解决该问题。 我删除了整个nod-modules目录并再次安装,并且通过 npm update 更新了整个文件夹,但没有一个解决了问题。 我还重新安装了autoprefixer和browserslist,但没有一个解决了这个问题。 如果我删除

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

从我的editorconfig.json中,一切正常,这意味着它可能与自动前缀相关。另外,我在package.json上手动将软件包版本更改为最新版本,然后重新安装,但是没有运气。

23 个答案:

答案 0 :(得分:47)

尝试一下,它解决了我的问题public class Foo { private String field; @JsonCreator public Foo( @JsonProrerty("field") String field) { this.field = StringUtils.EMPTY.equals(field) ? null : field ; } }

答案 1 :(得分:31)

对于Angular开发人员

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

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

因此,当您运行ng update时,应该获得@angular/cli的更新:

enter image description here

运行ng update @angular/cli将解决此警告。

干杯!

答案 2 :(得分:7)

听起来您正在使用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-lite和browserslist 打开CMD(在C:\ Users \ USERNAME \ AppData \ Local \ Temp \ WebCompilerX.X.X内部)并运行:npm我caniuse-lite浏览器列表

答案 3 :(得分:6)

就我而言,我从caniuse-lite中删除了browserslistnode_modules文件夹。

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

npm i -g browserslist caniuse-lite --save

工作正常。

答案 4 :(得分:3)

删除node_modulespackage-lock.jsonnpm i为我解决了这个问题。

答案 5 :(得分:2)

有一个环境变量 >= 4.5.4, BROWSERSLIST_IGNORE_OLD_DATA,您可以设置真值来抑制警告 (BROWSERSLIST_IGNORE_OLD_DATA=true)。请参阅提交 Add BROWSERSLIST_IGNORE_OLD_DATA environment variable

以下是该提交的相关代码片段,显示检查此环境变量时的早期救助:

module.exports = {
  // ...
  oldDataWarning: function oldDataWarning (agentsObj) {
    if (dataTimeChecked) return
    dataTimeChecked = true
    if (process.env.BROWSERSLIST_IGNORE_OLD_DATA) return

    // ...
    console.warn(
      'Browserslist: caniuse-lite is outdated. ' +
      'Please run next command `' + command + '`'
    )
    // ...
  }
  // ...
}

答案 6 :(得分:2)

我也遇到了同样的问题

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

...

}

答案 7 :(得分:2)

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

  1. 删除node_modules
  2. 删除package-lock.json
  3. 运行npm --depth 9999 update
  4. 运行npm install

答案 8 :(得分:1)

如斯科特·库尔(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. 将项目重新加载到解决方案中。

答案 9 :(得分:1)

@Alexandr Nil的答案很安全,对我有效

我正在写一个完整的答案,因为很容易错过他的评论。

npm --depth 20 update caniuse-lite browserslist 

这很好,因为:

  1. 没有删除package-lock.json。删除后,您很容易受到许多重大更改而升级的软件包。

  2. 这是明确的,并且非常限制要更新的内容。

  3. 它避免了99或9999的很大深度,该深度将在某些项目和系统上有效,而在其他项目和系统上则无效。如果将深度限制为太小,则不会破坏任何内容。您可以增加深度,然后重试,直到项目成功编译。

答案 10 :(得分:0)

对我有用的是首先像这样构建项目

<块引用>

npm 运行构建

然后像这样运行

<块引用>

npm 运行开始

这将消除错误并且应用程序加载正常。

答案 11 :(得分:0)

以下步骤对我有用

  1. rm -rf node_modules/
  2. yarn
  3. yarn upgrade caniuse-lite browserlist
  4. 重新启动服务器并清除浏览器缓存。

答案 12 :(得分:0)

许多建议您删除package-lock.jsonyarn.lock。这显然是个坏主意!

我正在使用Yarn,通过删除caniuse-db中的caniuse-liteyarn.lock项并执行yarn,就可以解决此问题。

不必通过删除来破坏锁文件的主要功能。

答案 13 :(得分:0)

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

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

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

对于npm:

hcut

对于纱线:

npm ls -g --depth=0

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

yarn global list

答案 14 :(得分:0)

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

编辑

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

答案 15 :(得分:0)

就我而言,这很好...

ax.annotate(labels[i], xy=(x[i], y[i]), xytext=(0, -np.sqrt(marker_size[i])/2. - 2), textcoords="offset points", ha="center", va="top")

答案 16 :(得分:0)

我找到了一条捷径,而不是经过vs code appData/webCompiler,而是将它作为对该cmd npm i caniuse-lite browserslist的项目的依赖。但是您可以将其全局安装以避免将其添加到每个项目中。

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

答案 17 :(得分:0)

继续answer above

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

当我再次进入WebCompiler文件夹并完成npm i autoprefixer@latest npm i caniuse-lite@latestnpm i caniuse-lite browserslist@latest

答案 18 :(得分:0)

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

答案 19 :(得分:-1)

要解决此问题,您可以在下面的命令中输入

'npm -g更新'

答案 20 :(得分:-1)

如果使用毛线:

yarn upgrade

为我提供帮助

答案 21 :(得分:-1)

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

  • 一个create-react-app项目
  • Ubuntu / * nix
  • 2020
  • 节点14.7

删除项目中的node_modules/browserslist目录

现在

npm run build

不再生成该消息

答案 22 :(得分:-1)

在Mac上,我删除了node_modules和package-lock.json,然后运行npm install并解决了我的问题。