项目太大

时间:2018-12-25 01:53:07

标签: node.js angular

我才刚刚开始学习Angular,我已经在Ubuntu Linux中安装了它: 角CLI:7.1.4。和 节点:10.14.2。

我的问题是,为什么一个项目太大?我的意思是一个简单的“ helloworld”为334MB,我不知道为什么,是否可以调整大小?或删除任何不必要的文件夹?或我的安装有问题吗? (如何检测到?)

更大的文件夹是node_modules,当我创建项目时,会生成很多文件夹。

我正在阅读有关“角延迟加载”的信息,但我是新手。.对我来说,这还不是很清楚。

这是文件夹空间:

enter image description here

请...我希望有人能帮助我... 最好的问候

4 个答案:

答案 0 :(得分:1)

您可能正在使用不需要的大捆,因此可以将它们拆开: https://medium.com/@julienetienne/javascript-bundles-are-too-big-break-up-the-libraries-3be87d5ef487

答案 1 :(得分:1)

在现代JavaScript中,项目需要模块,而模块本身又需要模块,这些模块需要模块...导致node_modules目录具有数百个依赖项。可能包括一个100Kb的库,因为有人需要其中的一个功能。 JavaScript没有被编译,因此所有源代码往往都很大。这是一个不幸但不可避免的事实。您的Angular项目目录将很大,您对此无能为力。完全正常。

好的部分:现代JavaScript 部署通常包括使用Webpack或Parcel或类似的代码捆绑器打包这些库。它们中的大多数实现了"tree shaking",后者分析代码以仅从入口点开始查找可能使用的功能,而仅捆绑这些功能而忽略其余功能。这意味着将使用一个功能的100Kb库转换为最终分发包中的那个功能。

在这一点上,并不是所有的捆绑器都同样出色。例如,Webpack不能摇晃CommonJS模块,只能摇晃ES6模块。

答案 2 :(得分:0)

这些仅仅是节点模块,它们是构建项目所必需的,但不一定要将其中的所有内容都部署到生产环境中。正如Amadan所说,这是一个摇摇欲坠的过程(仅过滤使用的模块),并且在生产中,您还使用了相同JS代码的缩小版本(例如,缺少空格和变量名被缩短),以及其他优化措施。 。对于hello-world应用程序,针对生产进行优化的Angular项目不应超过100KB。

在提供的图像中,我看到了类似的包

  • selenium-webdriver
  • 量角器

这些属于开发人员依赖项(请参阅package.json文件),因为它们用于测试。为生产而构建时,不应包括来自开发人员依赖性的代码。 Typescript程序包(屏幕快照中的大小为nr.2)也不会出现在生产环境中,因为像string这样的类型仅用于编写Typescript代码,但浏览器会接收Javascript,并将其编译为该Javascript。

答案 3 :(得分:0)

当您不打算使用该应用程序时,可以删除node_modules文件夹。 而且,当您需要在应用程序上工作时,可以使用以下命令重新生成node_modules:npm install