Javascript 为每个角度项目生成大量文件
我想为Angular启动一个简单的hello world应用程序 当我按照官方文件中的说明进行安装时,在我的项目中创建了32000个文件 我认为这是一个错误,或者我错过了一些东西,所以我决定使用,但在设置项目后,我统计了41000个文件Javascript 为每个角度项目生成大量文件,javascript,angular,Javascript,Angular,我想为Angular启动一个简单的hello world应用程序 当我按照官方文件中的说明进行安装时,在我的项目中创建了32000个文件 我认为这是一个错误,或者我错过了一些东西,所以我决定使用,但在设置项目后,我统计了41000个文件 我哪里出错了?我错过了一些非常明显的东西吗?您的配置没有问题 Angular(自版本2.0起)使用npm模块和依赖项进行开发。这是你看到如此大量文件的唯一原因 Angular的基本设置包含transpiler和打字依赖项,这些依赖项仅用于开发目的 一旦您完成了开
我哪里出错了?我错过了一些非常明显的东西吗?您的配置没有问题 Angular(自版本2.0起)使用npm模块和依赖项进行开发。这是你看到如此大量文件的唯一原因 Angular的基本设置包含transpiler和打字依赖项,这些依赖项仅用于开发目的 一旦您完成了开发,您所需要做的就是捆绑这个应用程序 绑定应用程序后,只有一个
bundle.js
文件可以部署到服务器上
“transpiler”只是一个编译器,感谢@OmniJustion添加它。您的配置没有问题 Angular(自版本2.0起)使用npm模块和依赖项进行开发。这是你看到如此大量文件的唯一原因 Angular的基本设置包含transpiler和打字依赖项,这些依赖项仅用于开发目的 一旦您完成了开发,您所需要做的就是捆绑这个应用程序 绑定应用程序后,只有一个
bundle.js
文件可以部署到服务器上
“transpiler”只是一个编译器,感谢@OmniJustion添加它。您的开发配置没有问题 您的生产配置出现问题 当你开发一个“Angular 2项目”或“任何基于JS的项目”时,你可以使用所有文件,你可以尝试所有文件,你可以导入所有文件。但是如果你想为这个项目服务,你需要把所有的结构化文件组合起来,去掉无用的文件 将这些文件组合在一起有很多选项:
- 对于服务器端(我认为这是最好的)
- 对于服务器端(我认为这是最好的)
- 完整构建行(TS精简、编译、缩小等)
- 3个用于部署的文件-->只有几个Http请求
- 更高的构建时间
- 不是Http 2项目的最佳解决方案(请参阅免责声明)
- 您的开发配置没有问题
您的生产配置出现问题
当你开发一个“Angular 2项目”或“任何基于JS的项目”时,你可以使用所有文件,你可以尝试所有文件,你可以导入所有文件。但是如果你想为这个项目服务,你需要把所有的结构化文件组合起来,去掉无用的文件
将这些文件组合在一起有很多选项:
Angular本身有很多依赖项,而CLI的beta版下载的文件要多出四倍 这是如何创建一个简单的项目将减少文件(“仅”10K文件)
正如一些人已经提到的:节点模块目录(包的NPM位置)中的所有文件都是项目依赖项(所谓的直接依赖项)的一部分。除此之外,您的依赖项还可以有自己的依赖项等等(所谓的传递依赖项)。数万个文件没什么特别的 因为你只允许上传10000个文件(见评论),所以我会选择捆绑机引擎。该引擎将绑定所有JavaScript、CSS、HTML等,并创建一个单独的绑定(如果您指定,可以创建更多)。您的index.html将加载此捆绑包,仅此而已 我是webpack的粉丝,因此我的webpack解决方案将创建一个应用程序包和一个供应商包(有关完整的工作应用程序,请参见此处): index.html
<!DOCTYPE html>
<html>
<head>
<base href="/">
<title>Webcms</title>
</head>
<body>
<webcms-application>Applikation wird geladen, bitte warten...</webcms-application>
<script type="text/javascript" src="vendor.bundle.js"></script>
<script type="text/javascript" src="main.bundle.js"></script>
</body>
</html>
优点:
但与IPv6相同:人们真正使用Http 2需要几年时间,正如一些人已经提到的那样:节点模块目录(包的NPM位置)中的所有文件都是项目依赖项的一部分(所谓的直接依赖项)。除此之外,您的依赖项还可以有自己的依赖项等等(所谓的传递依赖项)。数万个文件没什么特别的
Typical Angular2 Project
因为你只允许上传10000个文件(见评论),所以我会选择捆绑机引擎。该引擎将绑定所有JavaScript、CSS、HTML等,并创建一个单独的绑定(如果您指定,可以创建更多)。您的index.html将加载此捆绑包,仅此而已
我是webpack的粉丝,因此我的webpack解决方案将创建一个应用程序包和一个供应商包(有关完整的工作应用程序,请参见此处):
index.html
<!DOCTYPE html>
<html>
<head>
<base href="/">
<title>Webcms</title>
</head>
<body>
<webcms-application>Applikation wird geladen, bitte warten...</webcms-application>
<script type="text/javascript" src="vendor.bundle.js"></script>
<script type="text/javascript" src="main.bundle.js"></script>
</body>
</html>
优势
@angular 3,236 1
rxJS 1,349 1*
core-js 1,341 2
typings 1,488 0
gulp 1,218 0
gulp-typescript 1,243 0
lite-server 5,654 0
systemjs-builder 6,470 0
__________________________________________________________________
Total 21,999 3
ng new test-project
ng build --prod
./app/index.js
./app/size-check.component.css
./app/size-check.component.html
./favicon.ico
./index.html
./main.js
./system-config.js
./tsconfig.json
./vendor/es6-shim/es6-shim.js
./vendor/reflect-metadata/Reflect.js
./vendor/systemjs/dist/system.src.js
./vendor/zone.js/dist/zone.js
ng new name --minimal
mv node_modules .blergyblerp && ln -s .blergyblerp node_modules
ng new name --minimal