参考博文:node.js是前端还是后端? - 知乎 (zhihu.com)
一、概念
- 前端是指浏览器的执行环境。相反的后端是指服务器的执行环境。
- 前端技术则是指浏览器端的应用开发技术,包括HTML, CSS, 浏览器JS,Flash,Activex, Applet 等技术。
- 前端技术栈是指所有辅助前端技术运行的技术,包括前端技术本身,但是又不完全与前端技术本身相同。
- 前端工具是前端技术栈里的一部分,但是又不属于前端技术。如nodejs
二、node.js
在前端开发里的作用主要还是工具的作用。主要表现在以下方面:
- 构件开发流程
主要是将前端的开发过程变的简化,自动化。这类软件主要有gulp, yo, grunt. - 构件项目文件
主要作用是将前端的代码组织起来,包括html, css, js都组成起来,并打包完成。这类工具主要有webpack, browserify, require.js, uglify等
通过上述的几个功能,就可以通过node.js将前端的代码组织起来,然后通过node的工具软件,将node.js的代码转化成前端的js代码。所以在这种意义上来讲,可以认为:
- node.js的开发是前端开发。但是不表示node.js本身是前端。
- node.js是以工具的形式,参与到前端开发之中。
- node.js的作用就相当于是JAVA的GWT。
它最终生成的是前端的JS,但是不能说Java属于前端(至少目前还不是),所以虽然前端开发对于node.js的依赖非常的强,但是node.js并不属于前端,node.js只是大量的参与了前端工具链的工作,并提供了更多,更好的前端工具