最近,当我编译我的scss文件时,我得到一个错误。错误信息如下:

Browserslist: canius -lite已经过时。请运行下一个命令npm update canius -lite browserslist

首先,正如消息所说,我运行npm update canius -lite browserslist,但它没有解决这个问题。 我删除了整个node_modules目录并重新安装,我也通过npm update更新了整个文件夹,但没有一个解决了这个问题。 我还重新安装了autoprefixer和browserslist,但没有一个解决问题。

如果我移除

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

从我的编译配置。Json,一切都很好,这意味着它可能与autoprefixer有关。另外,我手动将包版本更改为包上的最新版本。Json和重新安装,但没有运气。


当前回答

最小的解决方案,为我目前的项目工作

一个创建-反应-应用程序项目 Ubuntu / *nix 2020 节点14.7

删除项目中的node_modules/browserslist目录

now

npm run build

不再生成该消息

其他回答

听起来好像你在使用Visual Studio的Web Compiler扩展。这里有一个开放的问题:https://github.com/madskristensen/WebCompiler/issues/413

在那个问题上有一个解决方案:

关闭Visual Studio 转到C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X。X (X是WebCompiler的版本) 在“node_modules”文件夹中删除以下文件夹:caniuse-lite和browserslist 打开CMD(在C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X内部),运行:npm i caniuse-lite browserslist

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

EDIT

这个错误发生在我身上,因为我使用的是节点版本12。 当我降级到10.16.5版本时,此错误停止。这个错误发生在我的本地环境中,但在prod和staging中,它不会发生。在prod和staging节点版本是10。我只需要这样做,我不需要更新package.json中的任何包

我已经一步一步地解决了这个问题:

删除node_modules 删除package-lock.json, 运行NPM——depth 9999 update 运行NPM install

有一个环境变量>= 4.5.4,BROWSERSLIST_IGNORE_OLD_DATA,您可以将其设置为true来抑制警告(BROWSERSLIST_IGNORE_OLD_DATA=true)。添加BROWSERSLIST_IGNORE_OLD_DATA环境变量。

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

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 + '`'
    )
    // ...
  }
  // ...
}

我发现了一个捷径,而不是通过vs code appData/webCompiler,我添加它作为一个依赖到我的项目与这个cmd npm I caniuse-lite浏览器列表。但是您可以全局安装它,以避免将它添加到每个项目中。

安装后,可以将其从项目包中删除。Json和做NPM i。

更新:

以防万一,上面的解决方案没有解决它。你可以运行npm update,因为这会升级已弃用/过时的包。

注意:

运行npm更新后,可能会丢失依赖项。跟踪错误并安装缺少的依赖项。我的是nodemon,我修复了npm I nodemon -g