如何判断我是不是真的需要已下载的 Node 包的数量?

Posted

技术标签:

【中文标题】如何判断我是不是真的需要已下载的 Node 包的数量?【英文标题】:How to tell if I really need the number of Node packages that have downloaded?如何判断我是否真的需要已下载的 Node 包的数量? 【发布时间】:2018-01-20 05:37:18 【问题描述】:

我正在使用 Angular 和 ngx-bootstrap,但我在 node_modules 中有 269 个文件夹。当然不是所有这些都是必要的吗?有没有办法确定这 269 个文件夹中的一些是否不再需要? node_modules 文件夹超过 88MB!在过去的几天里,我可能已经安装了一些其他软件包,但我不记得了,因为我还必须手动调整我的 package.json 文件。

这是我的 package.json


  "author": "me",
  "dependencies": 
    "@angular/cdk": "^2.0.0-beta.8",
    "@angular/common": "~4.3.0",
    "@angular/compiler": "~4.3.0",
    "@angular/core": "~4.3.0",
    "@angular/forms": "~4.3.0",
    "@angular/http": "~4.3.0",
    "@angular/platform-browser": "~4.3.0",
    "@angular/platform-browser-dynamic": "~4.3.0",
    "@angular/router": "~4.3.0",
    "angular-in-memory-web-api": "~0.2.4",
    "core-js": "^2.5.0",
    "moment": "^2.18.1",
    "moment-timezone-all": "^0.5.5",
    "rxjs": "5.0.1",
    "systemjs": "0.19.40",
    "zone.js": "^0.8.4"
  ,
  "description": "A starter app using Angular2, Bootstrap CSS for hosting within an ASP.NET MVC web app",
  "devDependencies": 
    "@types/node": "^6.0.85",
    "alertify.js": "^1.0.12",
    "bootstrap": "^3.3.7",
    "font-awesome": "^4.7.0",
    "jquery": "^3.2.1",
    "modernizr": "^3.5.0",
    "ngx-bootstrap": "^1.8.1",
    "systemjs": "^0.19.40"
  ,
  "keywords": [],
  "license": "MIT",
  "name": "aspng2",
  "repository": ,
  "version": "1.0.0"

【问题讨论】:

你可以试试npm prune(见***.com/questions/21417014/…),但现实情况是,像Angular这样的框架非常庞大,而javascript生态系统现在也非常庞大,所以你很有可能无法做到完全节省空间。 ^ 这应该是答案。 npm prune。 '269' 看起来并不太奇怪,因为 NPM 3 及更高版本具有简单的目录结构。对于 Angular 项目,88MB 被认为很小。 【参考方案1】:

如果您使用 Angular CLI 并使用它的 ng build --prod,它将为您执行某种程度的“摇树”。这意味着它将删除这些供应商功能中未使用的部分,从而使您部署的包显着变小。

有关详细信息,请参阅此处的文档:https://angular.io/guide/aot-compiler#tree-shaking

【讨论】:

以上是关于如何判断我是不是真的需要已下载的 Node 包的数量?的主要内容,如果未能解决你的问题,请参考以下文章

炒股的过程中,该如何判断一支股票是不是已到达底部呢?

nodejs下载文件先判断内存是不是够用

React + Node Express,下载的docx文件已损坏

python3判断输入的数是否为素数

java中如何判断输入的数是不是符合为四位整数这个条件?

如何判断某个mysql数据库是不是已存在