Sil*_*ish 13 npm-install angular
我最近开始在我正在处理的 Angular 8 项目(节点 v10.16.0)上收到此错误。运行 npm update caniuse-lite browserslist 什么也没做
所以我删除了 package-lock.json,删除了 node_modules 并运行了 npm install,但是浏览器列表文件已经消失了。再次运行 ng build 时,我收到相同的消息:Browserslist: caniuse-lite is outdated。请运行下一个命令npm update
我在同一主题上看到了这篇文章: Browserslist: caniuse-lite is outdated。请运行下一个命令 `npm update caniuse-lite browserslist` 但是,它谈到了 WebCompiler 和 autoprefixer,我不知道这些。请指导
Dip*_*ten 10
通过运行以下命令解决了 caniuse-lite 过时的问题。
npm cache clean # optional
npm install caniuse-lite@latest --save
Run Code Online (Sandbox Code Playgroud)
TLDR:(没有解释可能看起来违反直觉)
npm install caniuse-lite browserslist
npm uninstall caniuse-lite browserslist
Run Code Online (Sandbox Code Playgroud)
解释:
如果发现安装的 caniuse-lite 版本比当前版本旧 2 个版本,则此警告消息(“canisuse-lite 已过时,请....”)在构建/启动期间由浏览器列表中的脚本输出。如果您的项目中没有任何更改,并且您在启动或构建项目时突然看到此消息,则可能意味着 caniuse-lite 的最新版本更新。
不幸的是, browserslist 显示的文本 msg 仅在您将 caniuse-lite 作为项目的依赖项安装时才有用。很可能,你没有。因此,当您运行建议的 'npm update caniuse-lite' 或 'npm update 'caniuse-lite@latest'(或 'npm install')时,npm 不会在您的 package.json 依赖项中看到该包,因此它会忽略请求。
那么这些包是如何成为依赖的呢?当您的项目创建时(可能使用 app angularapp 或 create-react-app 或类似的框架),npm 安装 browserslist 作为其所需工具的依赖项,而不是作为您项目的依赖项之一。同时,caniuse-lite作为browserslist的依赖安装。稍后当项目更新时,会创建一个 package-lock.json 文件,该文件将所有依赖项锁定到特定版本。
如果您能够更新 package-lock.json 中依赖项列表中的版本信息,那么运行“npm install”将更新 node_modules 中的这些包。您不应手动编辑 package-lock.json。相反,最好的方法是:
暂时使这些包成为您项目的依赖项:
npm install caniuse-lite 浏览器列表
除了将包更新到最新版本之外,这还会更新 package.json 和(最重要的)package-lock.json 中的依赖项列表。
删除这些包作为项目的直接依赖项:
npm 卸载 caniuse-lite 浏览器列表
由于这些包被其他依赖项使用,它们不会从 node_modules 中删除。仅更新 package.json 以将它们作为项目依赖项删除。
提交 package-lock.json。其他任何人现在都可以运行“npm install”从 package-lock.json 中的子依赖项列表中获取更新的两个包,并停止警告消息。
| 归档时间: |
|
| 查看次数: |
9728 次 |
| 最近记录: |