为什么我的Angular 7项目中有40000个软件包?如何删除未使用的依赖项?

时间:2019-03-29 11:39:35

标签: angular npm angular7 package.json

在控制台中启动npm audit时,输出如下:

[...] found 0 vulnerabilities in 40256 scanned packages

为什么我的项目中有40000多个软件包?对于我来说,这么多的软件包似乎很疯狂,因为我不使用太多的库。

我尝试了以下方法:

  • 删除未使用的程序包(Jasmine,Karma等)。
  • 使用npm prune

我发现这主要是由于Angular7的依赖关系所致:

  • 降级到Angular 5时,我“只有”大约7000个软件包。
  • 我的package.lock.json文件差不多有10000行,其中很多都是依赖项。

由于这些原因,这使我感到困扰:

  • 拥有如此多的软件包可能会带来频繁的安全问题。
  • 启动npm install需要更多的资源和时间,我想对其进行更多的优化。
  • 我有很多未使用的软件包,与这里无关。(例如,我不需要像Babel这样存在的polyfill,因为我不想开发跨浏览器的解决方案)。

删除这些未使用的软件包不是一个好主意吗?

为什么在刚创建的Angular 7项目中有这么多软件包?

如何删除未使用的Angular依赖项?

2 个答案:

答案 0 :(得分:0)

  • 首先,从packages.json文件中删除npm软件包,然后保存 文件。
  • 要删除任何特定的节点程序包,请运行命令npm prune
  • 运行npm prune命令以删除未使用或不需要的节点 来自Node.js的软件包

  • 如果要删除devDependencies,请使用以下命令运行prune命令: –production标志npm prune — production = true

  • 如果您不想取消建立devDependencies,则需要设置 –production标志false npm prune — production = false

答案 1 :(得分:-1)

您绝对可以删除软件包,但是最好保留它。

原因:我们将不知道哪个软件包正在使用其他依赖软件包。因此最好不要将其删除。

但是不用担心。部署之前,一旦运行ng build,它将自动删除未使用的软件包。