刚开始从github上clone这个项目到本地,拖到vscode中,第一个反应就是这该从哪里开始看、项目怎么运行、为什么只有一个index.html,而且还打不开,怎么部署到服务器上去运行,心里阴影面积得有多大。。。
我也是带着这样的心情一步步摸索过来的,当熟悉了这一套以后,会有一种柳暗花明的感觉,那种感觉就是很爽,有时间的伙伴可以多花点时间自己去摸索相信会有非常大的收获。
下面我们来一一解决上面的困惑,揭开这套框架神秘的面纱。
学习webpack和npm管理工具,对入手这套框架很有帮助,能让你了解它的来龙去脉。
这套ng2的框架集成的功能还是非常多的,光看目录下的文件也能看出来,包括tslint\karma\docker等,这部分我们前期可以不去管它,如果你不想用,也不会影响开发。
对于任何一个前端项目(特别是github上的项目),我们打开项目首先关注的应该是package.json文件,这个文件里除了最重要的dependencies之外,我们最应该关注的就是scripts内容,它告诉我们运行脚本(大多数是webpack的指令),关于npm相关的知识点贴出来
npm package.json中的dependencies和devDependencies的区别
首先执行npm install指令加载依赖,可以使用淘宝镜像cnpm快速下载
然后执行npm run start执行运行script中的start指令,其指向指令npm run server:dev,这指令又指向了webpack-dev-server --config config/webpack.dev.js --progress --profile --watch --content-base src/,语法学习webpack知识
然后就静静地等待项目启动运行,看到vaild的字眼就说明启动成功了,浏览器输入localhost:3000就能看到项目内容了。这个地址也是可配置的。
其实就是在本地起了一个webpack-dev-server的服务器,可以自动刷新页面,方便开发。
为什么只有一个index.html呢,这是因为webpack的模块化,index.html的作用就是为项目提供一个入门,也就是为打包后输出的三个文件polyfills.js、vendor.js、main.js提供一个载体,对webpack来说,js是最主要的,html和css都可以借助js完成页面渲染,webpack也可以实现多入口。一般情况下我们做单页面应用开发,一个入口足矣。
看来webpack对于理解这套框架非常有帮助。不过开发过程中,如果你不需要改配置,那么你记住那几个script下的指令就够你应付了,毕竟时间有限,一下子学那么多东西也是挺难受的。
那么最后一个问题,怎么部署呢,其实问题比想象中的要简单许多,有后端开发经验的人会好很多,我们执行npm run build指令,打包项目输出到dist目录下,在服务器上起一个nginx服务,把dist目录下的文件放到nginx下就可以实现部署了,就是这么简单,我们本地运行也是起了一个服务器,既然本地都可以通过服务访问,所以服务器上也是一样的道理。
我们公司是使用了jeakins来自动化构建,利用jeakins从gitlab拉取代码后执行build的操作,再将代码复制到相应的服务下就能访问了。
这套框架最重要的还是angular2的语法,它才是我们的主心骨,其余知识点也是为了辅助我们开发用的。项目运行起来后,再慢慢把个个知识点不断挖掘吃透,这是一种快捷有效的应用方式。
关于调试
当我们开启sourcemap,就能看到源码在webpack目录下,localhost下的编译过的代码