開門見山,簡單說:
- node.js本身不屬於前端,但是屬於前端的技術棧。
- node.js是前端工具鏈的重要成員,它參與前端開發,屬於前端技術棧里的前端工具。類似於GWT,或者編輯器,它本身並不是屬於前端。
- node.js是js的運行環境,即可以服務於前端,也可以服務於后端。
在這里我們要區分好前端,前端技術,前端技術棧,前端工具等詞匯的區別。
前端是指瀏覽器的執行環境。相反的后端是指服務器的執行環境。
前端技術則是指瀏覽器端的應用開發技術,包括HTML, CSS, 瀏覽器JS,Flash,Activex, Applet 等技術。
前端技術棧是指所有輔助前端技術運行的技術,包括前端技術本身,但是又不完全與前端技術本身相同。
前端工具是前端技術棧里的一部分,但是又不屬於前端技術。
所以如果你理解了以上的概念你就能更好的確定node.js與前端,前端技術,前端技術棧與前端工具之間的關系。
詳細分析如下:
node.js不屬於前端
經常有人說nodejs是前端,同時也有會出來反對說node.js是后端。
嚴格意義上講node當然不屬於前端。
因為Node一開始只是服務器端的js,但是現在的說法是node.js已經是js的一個運行時了。
它的核心是event driven, non blocking I/O,以及主要由npm構建的模塊體系。
所以node.js本身與前端並沒有關系,他是一個運行時.
node.js可以輔助前端開發
盡管nodejs不屬於前端,但是node.js因為使用的語言是js。所以可以很好的輔助前端開發.
node.js繁榮了前端的構建工具
我們知道Web的開發體系中,分成前端,后端,工具,三個主要的領域。
前端主要由由瀏覽器,HTML+CSS+瀏覽器端JS完成。
后端主要是由Web服務器,數據庫,動態腳本語言,其它的業務服務器等組成。
還有就是很多基礎設計與便利資料,我們可以統稱為工具。比如源碼管理,編輯器,數據庫備份,加密,解密,防火牆等一系列的工具。
那么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只是大量的參與了前端工具鏈的工作,並提供了更多,更好的前端工具。