关于前端项目中的服务器
可能这是一个小白问题,目前对服务器几乎一无所知,我们平时写简单的项目时可能直接打开一个index.html,里面引用一些css,js就可以在浏览器运行了。
但是当我用angular2写项目的时候,发现我们需要加入node了,我们通过npm安装依赖,这时我们可能会通过npm start来启动诸如lite-server之类的服务器才能运行,无法直接打开index.html来运行了。
我的问题是, 1.有无node对一个前端项目意味着什么? 2.为什么后者必须通过类似liteserver之类的服务器才能运行? 3.它与线上服务器(nginx等)有什么区别和联系?
希望可以详细回答下
2 回复
- 这个问题没看懂。node 可以作为工具使用,也可以作为 server 端的语言。
- Angular2 没用过,但是应该不是必须用 node 启动的 server 才能运行。其他程序启动的 server 应该也可以,比如 nginx,python 启动的静态资源服务。
- node 可以替代 nginx 实现几乎所有的功能。但是 nginx 稳定些,建议用 nginx 转发到 node 程序的端口。
- 有 node 可以大大提升你的开发效率,例如:gulp、webpack 等构建工具
- Angular2 不是必须使用 liteserver,你应该看了官网的 hero 教程,他们使用了ng2 自带的 liteserver 来实现热重载(热更新),可以说热更新的功能是现在开发必不可少的。没有 liteserver 你也一样可以通过 node 的 httpServer 来启动应用,只是这样没有热更新的功能
- 区别就是:node 是 JavaScript 运行时,虽然你可以写 server,但它始终不是一台正儿八经的服务器,而 NGINX 是一台正儿八经的服务器,你所需要的一些 robust 的服务器特性它都有(负载均衡、增强脚本等)。联系就是,你可以使用 NGINX 来提升你的 node 服务器的性能。