我想为Angular创建一个简单的hello world应用。
当我按照官方快速入门中的说明安装时,在我的项目中创建了32,000个文件。
我认为这是一个错误或我错过了一些东西,所以我决定使用angular-cli,但在设置项目后,我数了41,000个文件。
我哪里错了?我是不是忽略了一些非常非常明显的东西?
我想为Angular创建一个简单的hello world应用。
当我按照官方快速入门中的说明安装时,在我的项目中创建了32,000个文件。
我认为这是一个错误或我错过了一些东西,所以我决定使用angular-cli,但在设置项目后,我数了41,000个文件。
我哪里错了?我是不是忽略了一些非常非常明显的东西?
当前回答
您的配置没有问题。
Angular(从2.0版开始)使用npm模块和依赖项进行开发。这就是你看到这么多文件的唯一原因。
Angular的基本设置包括编译器、类型依赖关系,这些仅用于开发目的。
一旦您完成了开发,您所需要做的就是捆绑这个应用程序。
在捆绑你的应用程序之后,只有一个bundle.js文件可以部署到你的服务器上。
'transpiler'只是一个编译器,感谢@omninonsense添加它。
其他回答
您的开发配置没有问题。
如果你使用Angular CLI,你可以在创建项目时使用——minimal标志
ng new name --minimal
如果你使用Angular CLI,你可以在创建项目时使用——minimal标志
ng new name --minimal
我刚刚用标志运行它,它创建了24 600个文件和ng build -prod生成212 KB的dist文件夹
所以如果你的项目中不需要饮水机或者只是想快速测试一些东西,我认为这是非常有用的
如果您的文件系统支持符号链接,那么您至少可以将所有这些文件降级到一个隐藏文件夹中——这样像tree这样的智能工具在默认情况下就不会显示它们。
mv node_modules .blergyblerp && ln -s .blergyblerp node_modules
为此使用隐藏文件夹还可以鼓励这样的理解,即这些是与构建相关的中间文件,不需要保存到修订控制中——或者直接在部署中使用。
您的开发配置没有问题。
您的生产配置有问题。
当你开发一个“Angular 2项目”或“任何基于JS的项目”时,你可以使用所有文件,可以尝试所有文件,可以导入所有文件。但如果你想为这个项目服务,你需要合并所有结构化文件,并摆脱无用的文件。
有很多选项可以将这些文件合并在一起:
YUI Compressor 闭包编译器 对于服务器端(我认为最好)GULP
这实际上并不是Angular特有的,几乎所有使用NodeJs / npm生态系统作为工具的项目都会发生这种情况。
这些项目在你的node_modules文件夹中,是你的直接依赖需要运行的传递依赖。
在节点生态系统中,模块通常很小,这意味着我们不需要自己开发东西,而是倾向于以模块的形式导入大部分我们需要的东西。这可以包括像著名的左垫函数这样的小东西,如果不是作为练习,为什么我们自己写呢?
所以有很多文件实际上是一件好事,这意味着一切都是模块化的,模块作者经常重用其他模块。这种模块化的便利性可能是节点生态系统发展如此迅速的主要原因之一。
原则上这应该不会引起任何问题,但似乎你遇到了谷歌应用程序引擎文件计数限制。在这种情况下,我建议不要上传node_modules到应用程序引擎。
相反,在本地构建应用程序,并上传到谷歌应用程序引擎只捆绑文件,但不构建在应用程序引擎本身。