对以往经历过原生App开发、当前主要做后端开发的我这样一个童鞋来说,不仅觉得Web前端布局繁杂,并且对其技术体系了解不深,人说当今是大前端时代,微信推出小程序后我也开始接触到相关的开发,现在很多开发框架也引入了数据绑定的概念,类似的如vue.js。一直以来对Node.js也有很多疑问,在此记录个解惑笔记。
- Node.js 和 npm
[官网关于Node.js的描述]
Node.js? is a javascript runtime built on Chrome‘s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js‘ package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
所以,Node.js是一个构建在谷歌V8引擎的js运行环境。Node.js的事件驱动、非阻塞IO模型使其轻量、高效。npm是Node.js的包管理系统,是全世界最大的开发库生态系统。
下面引入一段RUNOOB网站上的解释:
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
1. 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
2. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
3. 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
从包管理的角度上来看,npm应该算是类似ios中的CocoaPods,Java中的Maven。这样看起来就好理解多了。详细使用和原理还待深究。
随着各种Web应用的发展,html5、小程序、React Native各种技术在多个领域的广泛使用,逐渐引领了一股前端热潮。手机端利用React开发跨平台应用,Node.js可编写提供后端服务等等。
从当前Web前端开发来看,主要的前端技术框架有React、Angular JS、Vue,也有使用dva的,dva这个框架也是最近了解到的,可在github上找到。dva on github
常用的前端构建工具有Webpack、Gulp、Grunt。