看了下網(wǎng)上的解釋绑警,一般都是將介紹vue.js的文本與node js的文本 貼過來求泰, 再解釋說 前者是前端開發(fā)框架,后者是js的運(yùn)行環(huán)境计盒,可以以js開發(fā)后臺服務(wù)器渴频。似乎沒有說到點(diǎn)子上。
我的理解是
1. nodejs是一個(gè)很強(qiáng)大的js 運(yùn)行環(huán)境北启,類似于jvm之于java卜朗。因此對js的支持非常好,催生了基于js的一系列應(yīng)用開發(fā)咕村。源于各js的應(yīng)用的成長壯大场钉,繼而催生出了 npm
2. NPM是基于node js環(huán)境的一個(gè)包管理器。試問 為什么單純的 jsp/php里面沒有NPM懈涛?因?yàn)闆]有一個(gè)類似于nodejs的強(qiáng)大的js運(yùn)行環(huán)境的支撐逛万。由于nodejs 催生了js的興盛,又進(jìn)而催生出NPM來打包管理這些基于js的應(yīng)用
3. 隨著前端開發(fā)的網(wǎng)頁元素不斷豐富和復(fù)雜化肩钠,催生出webpack 來進(jìn)一步規(guī)劃js應(yīng)用的打包部署泣港。前端目標(biāo)頁面資源,通過webpack來打包壓縮出來价匠。
4. 可以看出vue.js 就是遵循的webpack 的方式來部署的,我們使用npm run build之后呛每,會生成一個(gè)目標(biāo)dist文件踩窖。這即是目標(biāo)靜態(tài)web資源,放在nginx下面即可通過網(wǎng)頁訪問晨横。
綜上所述洋腮,vue.js 是通過 webpack來打包,而webpack 又基于 npm, npm需要nodejs環(huán)境手形。這就是為什么vue.js 還需要安裝nodejs環(huán)境啥供。
將目標(biāo)dist文件夾拷貝到一臺未安裝nodejs的 nginx服務(wù)器上,訪問頁面可以正常響應(yīng)邏輯库糠。這時(shí)跟nodejs沒有任何關(guān)系伙狐,服務(wù)器又不是nodejs在擔(dān)當(dāng)涮毫,而是nginx。如果你用nodejs來部署服務(wù)器贷屎,則需要在目標(biāo)機(jī)上安裝nodejs.
簡單的說:你既可以開發(fā)nodejs的服務(wù)程序罢防,亦可以用基于nodejs的npm && webpack來打包 目標(biāo)前端頁面。vue.js 使用webpack來打包唉侄,故而需要nodejs環(huán)境咒吐。