最近,当我编译我的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上手动将软件包版本更改为最新版本,然后重新安装,但是没有运气。
答案 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 CLI的发行说明时有一个坏习惯,我发现它们昨天(2020年1月9日)发布了一个新补丁,可解决此问题。
https://github.com/angular/angular-cli/releases/tag/v8.3.22
因此,当您运行ng update
时,应该获得@angular/cli
的更新:
运行ng update @angular/cli
将解决此警告。
干杯!
答案 2 :(得分:7)
听起来您正在使用Visual Studio的Web编译器扩展。此处有一个未解决的问题:https://github.com/madskristensen/WebCompiler/issues/413
该问题中发布了一种解决方法:
答案 3 :(得分:6)
就我而言,我从caniuse-lite
中删除了browserslist
和node_modules
文件夹。
然后我键入以下命令来安装软件包。
npm i -g browserslist caniuse-lite --save
工作正常。
答案 4 :(得分:3)
删除node_modules
和package-lock.json
和npm 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.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"
},
...
}
答案 7 :(得分:2)
我已通过逐步解决此问题:
node_modules
package-lock.json
,npm --depth 9999 update
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文件中:
</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>
答案 9 :(得分:1)
我正在写一个完整的答案,因为很容易错过他的评论。
npm --depth 20 update caniuse-lite browserslist
这很好,因为:
没有删除package-lock.json
。删除后,您很容易受到许多重大更改而升级的软件包。
这是明确的,并且非常限制要更新的内容。
它避免了99或9999的很大深度,该深度将在某些项目和系统上有效,而在其他项目和系统上则无效。如果将深度限制为太小,则不会破坏任何内容。您可以增加深度,然后重试,直到项目成功编译。
答案 10 :(得分:0)
对我有用的是首先像这样构建项目
<块引用>npm 运行构建
然后像这样运行
<块引用>npm 运行开始
这将消除错误并且应用程序加载正常。
答案 11 :(得分:0)
以下步骤对我有用
rm -rf node_modules/
yarn
yarn upgrade caniuse-lite browserlist
答案 12 :(得分:0)
许多建议您删除package-lock.json
或yarn.lock
。这显然是个坏主意!
我正在使用Yarn,通过删除caniuse-db
中的caniuse-lite
和yarn.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@latest
和npm i caniuse-lite browserslist@latest
答案 18 :(得分:0)
npm --depth 9999 update
为我解决了这个问题-显然是因为package-lock.json
坚持使用过时的版本。
答案 19 :(得分:-1)
要解决此问题,您可以在下面的命令中输入
:'npm -g更新'
答案 20 :(得分:-1)
如果使用毛线:
yarn upgrade
为我提供帮助
答案 21 :(得分:-1)
删除项目中的node_modules/browserslist
目录
现在
npm run build
不再生成该消息
答案 22 :(得分:-1)
在Mac上,我删除了node_modules和package-lock.json,然后运行npm install并解决了我的问题。