node_modules文件夹的大小不是问题。这是一种特权

我对node_modules文件夹大小辩论的看法

我以前很生气node_modules文件夹大小。一个JavaScript应用程序如何在没有我添加任何代码的情况下就达到100、200MB的大小?我刚跑npx create-react-app todolist我下载了218,7MB的东西! (我现在检查了一下,这是一个实数)。

每当您考虑到node_modules的大小时,请考虑一下我们程序员投入的数百万个工时。

这是所有开源软件。您可以检查和学习的软件。由世界各地的程序员和公司捐赠。这是一项全球性的努力,有人很容易从中受益。碰巧是npm,首先是工具,然后是公司。

我们都同意将代码发布到他们的服务器上,然后人们在头顶上构建东西,在头顶上构建其他东西,直到我们有了一个快速入门(例如create-react-app或Vue CLI)的地步。可以用来免费获得大量动力。

在TB级快速存储时代200MB太多了吗?

请记住,这种大小的绝大多数是测试,文档,而并非如此。而且,剩下的绝大多数代码仅在开发环境中使用。并不是您会为客户端提供200MB的应用程序,我认为这是众所周知的。

我以create-react-app为例。那200MB中有什么?

首先,create-react-app包含

  • 编译器(Babel)
  • 捆绑器(Webpack)
  • 代码压缩器
  • 短绒(ESLint)
  • 样式管道工具(SCSS)
  • 具有实时重载的开发服务器
  • 跑步者(笑话)

如果要编写Mac或iPhone应用程序,则必须安装Xcode,Apple提供的IDE。Xcode(等待它。)几乎是14GB。那是node_modules大小的70倍。诚然,我们正在比较两个不同的事物,但是node_modules包含了开始编写代码所需的全部内容。您可以将它与大小为200MB的VS Code配对,或者与30MB的Sublime Text配对-没关系,甚至没有严格要求的人(尽管没有iOS,您就无法创建iOS / macOS应用Xcode)。

如果您的硬盘充满了模块,pnpm是一种最佳的嵌入式解决方案,它将模块集中在一个位置,并且您所有的应用程序都使用这些模块,而不是制作自己的本地版本。在线编码工具(例如毛刺例如。

我已经读过很多人想知道,如果我们的应用程序依赖他人编写的过多代码,他们将如何审核代码库中的安全性问题或其他问题。

这是一种选择,对吧?您没有被迫使用模块。您可以创建自己的工具版本,该工具版本不需要所有这些模块,但随后您将必须维护该代码,对其进行测试,在需要更新的情况下管理新版本,等等。工作

我有机会与其他语言和生态系统一起工作,而npm的活力和机遇本来应该是幸运的,但是我不得不为所有内容建立自己的小图书馆,因为我发现由第三部分开发人员分发的东西是几年以来一直不存在或被放弃,并且未与其他语言保持同步。

也许我们可以有一个标志来仅下载生产代码,而不下载所有文档,测试,还有什么呢?但这只是我现在想到的一个想法,不确定如何实现。

无论如何:万岁,node_modules

免费下载我的JavaScript初学者手册


更多js教程: