【问题标题】:Why is a Hello World angular app 300 megabytes?为什么 Hello World Angular 应用程序是 300 兆字节?
【发布时间】:2018-02-10 18:42:59
【问题描述】:

我是一位经验丰富的 Java/Tomcat 开发人员,第一次尝试使用 AngularJS。我对 npm、node、yeoman、bower 等了解不多。我按照教程下载了这些工具并创建了一个新的 AngularJS 项目。

我不记得所有的步骤,但是关于创建 Angular 项目的部分是这样的:

npm install generator-angular
yo angular

生成的空项目为 307.9 兆字节。

相比之下,从 IntelliJ 创建一个新的空 Tomcat 应用程序是 45 KB。

我做错了吗?如果不是,那么“轻量级”Angular 项目规模扩大数千倍似乎合理吗?

【问题讨论】:

  • 看起来不仅仅是 AngularJS 项目。也许您已经安装了整个(或部分)MEAN stack inc。一些依赖包/模块(通过 npm(例如 Express)来运行整个 Nodejs 服务器?
  • 为了公平的比较,Java 应用程序需要 JDK,它现在也有 100 MB 大。然而,开发东西的 Angular 挂件是这 300 MB 的一部分。
  • 是的,但是您只安装 JDK 一次 - 而不是每个项目安装一次。与这个 Angular 项目不同的是,JDK 不需要检查版本控制、备份或与任何人共享。
  • 我建议您使用angular/cli 并关注official tutorial
  • @Sébastien 这不起作用。当我运行“ng new angular-tour-of-heroes”时,出现以下错误:/usr/local/lib/node_modules/@angular/cli/models/config/config.js:17 constructor(_configPath, schema, configJson, fallbacks = []) { ^ SyntaxError: Unexpected token =

标签: angularjs yeoman


【解决方案1】:

这是因为 NPM 包管理器将必要的依赖项下载到 node_module 文件夹。 AngularJS 与 2+ 非常不同。例如,从版本 2 开始,它们都使用 TypeScript,并且为了能够加载和编译 Angular 工作所需的一切,它需要许多库。然而,如果你使用 NPM,你可以使用命令npm run-build 来编译你的视图,生成一个名为“output”或类似的输出文件夹。这样一来,这些文件就是您应该上传到服务器的文件,或者赋予其重要性。

【讨论】:

  • 但即使从开发的角度来看(不是在谈论部署),文件的大小和数量也令人讨厌。例如,在尝试将我的项目导入版本控制时,我一直在等待最后 30 分钟。
  • 您应该从版本控制中排除所有node_modules/ 内容。当你把你的项目拉到另一台机器上时,你会下载 npm install 的依赖项。
  • 是的,你必须排除 node_modules 文件夹,例如如果你使用 GitHub,你可以创建一个名为 .gitignore 的文件并在下面的行中写入“node_modules”。那么下载代码的人必须在运行前运行命令npm install
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 2023-01-10
  • 1970-01-01
相关资源
最近更新 更多