我正在开展涉及Angular 2的第二个项目。在第一个Angular 2项目升温后,在从Angular 1.5跳转的同时,我对如何减少包裹感兴趣。我想知道在不失去核心功能的情况下,我可以从package.json
文件中删除哪些内容。每个软件包的贡献是什么?我应该提供什么?
这是我到目前为止所理解的:
{
"name": "angular2-quickstart",
"version": "1.0.0",
"scripts": {
"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
"lite": "lite-server", // I use Webstorm, Visual Studio or Xampp
"postinstall": "typings install", // ???
"tsc": "tsc",
"tsc:w": "tsc -w", // Maybe I will keep
"typings": "typings"
},
"license": "ISC",
"dependencies": {
"@angular/common": "2.0.0-rc.5", // ng-if, ng-for seem to reside in here
"@angular/compiler": "2.0.0-rc.5", // renders the templates
"@angular/core": "2.0.0-rc.5", // :)
"@angular/forms": "0.3.0", // I could manage without, I use custom css
"@angular/http": "2.0.0-rc.5", // Need it
"@angular/platform-browser": "2.0.0-rc.5", // ???
"@angular/platform-browser-dynamic": "2.0.0-rc.5", // ???
"@angular/router": "3.0.0-rc.1", // Need it
"@angular/router-deprecated": "2.0.0-rc.2", // Nope
"@angular/upgrade": "2.0.0-rc.5", // Nope
"systemjs": "0.19.27", // importing modules
"core-js": "^2.4.0", // Some polyfills, Does Chrome 52.0 needs it?
"reflect-metadata": "^0.1.3", // Decorators ??
"rxjs": "5.0.0-beta.6", // depdency for EventEmitter
"zone.js": "^0.6.12", // data bindings don't work wihtout
"angular2-in-memory-web-api": "0.0.15", // ???
"bootstrap": "^3.3.6" // No need, I do all my css hand forged to perfection.
},
"devDependencies": {
"concurrently": "^2.0.0", // Nope
"lite-server": "^2.2.0", // Nope
"typescript": "^1.8.10", // Nope ? I learned that Webstorm can do this job
"typings":"^1.0.4" // Nope ?
}
}
答案 0 :(得分:3)
如the official blog post accompanying the RC5 release
中所述大约60%的Angular代码大小是编译器[...]因此启用AoT编译意味着您不必将该代码发送给您的用户
如果您最关心的是通过线路最小化字节,我建议通过将AoT编译合并到您的构建过程中来学习如何利用这一点(就您的问题而言,这将允许您删除compiler
和生产包中的platform-browser-dynamic
个模块)
同样值得注意的是,在最终版本is one of the major focuses for RC6的准备中修剪这些模块的大小,所以恕我直言,你正在做RC5的工作主要是浪费时间。