針對(duì)在“思否”上看到的關(guān)于vue,node,webpack的一些問(wèn)題及回復(fù),做出如下的整理,給同樣不是很清楚的朋友做了解,也供自己學(xué)習(xí)
原鏈接:https://segmentfault.com/q/1010000008451764/a-1020000008452409
1.什么是npm install?
?、賜pm install是幫助安裝 vue,或React到本地,npm install也可以安裝vue,React的開發(fā)工具。當(dāng)然你完全可以像jQuery一樣自己找網(wǎng)站下載下來(lái),在頁(yè)面中引入。
?、趎pm就好比是一個(gè)前端的插件商店,里面有各種開發(fā)者寫的包,你需要的時(shí)候就從命令行安裝就可以了,類似與linux的apt的概念
?、踤ode.js是服務(wù)端,瀏覽器端js有很多缺陷,比如不能操作本地文件吶。而服務(wù)端的js就可以,所以用node就能幫我們管理文件,處理I/O,然后經(jīng)過(guò)牛逼的開發(fā)者一封裝,一改造,一個(gè)grunt就出來(lái)了。
④vue的開發(fā)本身是不依賴node的,不過(guò)vue的腳手架工具vue-cli里面集成的webpack是基于node開發(fā)出來(lái)的。
因此只能說(shuō)webpack是依賴node的。
?、輓pm是社區(qū)、不光是node能用的庫(kù)、很多前端的庫(kù)也在里面發(fā)布、很多人會(huì)前端通常也就會(huì)一些node的東西
?、辡runt,gulp,webpack這些只是工具,幫助我們前端完成復(fù)雜的開發(fā),提高效率。你完全可以不用,如果不會(huì)的話還強(qiáng)行用只會(huì)加慢你的開發(fā)效率,而違背了初衷。
2.想學(xué)vue還得先學(xué)會(huì)npm? 沒(méi)有npm還不能用vue了嗎?
沒(méi)有npm也可以使用vue,vue只是一個(gè)前端框架。
3.npm又是隨node安裝的工具,還要學(xué)node?node不是服務(wù)器端的嗎?關(guān)前端什么事?
node是js的服務(wù)執(zhí)行環(huán)境,前端常常借助 node幫助前端實(shí)現(xiàn)工程化。很多工具是基于node的,比如說(shuō)你說(shuō)的webpack,grunt。
4.webpack,grunt有什么用?
webpack,grunt是前端工程化的工具,可以幫助前端完成混淆壓縮,校驗(yàn)等工作
5.服務(wù)端渲染又是什么?服務(wù)能解析js的不就只有node嗎?
實(shí)戰(zhàn)中沒(méi)用過(guò),請(qǐng)參考官方文檔https://cn.vuejs.org/v2/guide/ssr.html
6.我就不能單純的用 php+vue或者php+react開發(fā)?
可以單純的利用 php+vue或者php+react開發(fā)
7.apache是什么?和node有什么關(guān)系?
apache是web服務(wù)器,用于起后臺(tái)服務(wù);npm run dev本質(zhì)也是起一個(gè)服務(wù),不過(guò)是利用node起的服務(wù),起的是前端項(xiàng)目的服務(wù);兩者沒(méi)有聯(lián)系。(你可以使用npm run命令來(lái)運(yùn)行package.json文件中scripts里的任何條目)
8.有沒(méi)有懂的解譯下 vue,react之流框架,從開發(fā),到用戶看到這流程是怎么實(shí)現(xiàn)的。
問(wèn)題太大,可以寫本書。而且老實(shí)講,一切都需要實(shí)戰(zhàn)中才能有更深的體會(huì)
最后總結(jié)一下:
前端圈所謂得“亂”,一個(gè)是近些年前端框架層出不窮,工程化,解決方案越來(lái)越多,已經(jīng)脫離了一般人認(rèn)為的那個(gè)“好單純好不做作”的前端。就像后端開發(fā)有很多工具協(xié)作開發(fā)一樣,前端也需要越來(lái)越多的工作完成前端面臨巨大的工作量。 前端的行業(yè)發(fā)展已經(jīng)不是那種后端在php,jsp中寫一些html,前端來(lái)寫一些css來(lái)完成工作的階段。老實(shí)講,我現(xiàn)在80%的時(shí)間在寫js。前端已經(jīng)不是后端開發(fā)的最后一步甚至“附屬品”,而成為真正意義的“客戶端”。復(fù)雜度也就慢慢和app等客戶端越來(lái)越接近。
總的來(lái)說(shuō),你還是可以按照原先的開發(fā)方式來(lái)開發(fā)自己的應(yīng)用,當(dāng)然考慮引進(jìn)工具一些先進(jìn)的理念方法來(lái)協(xié)助開發(fā)。node,webpack,vue這些概念不應(yīng)該成為自己開發(fā)中的阻礙,而是在自己在面臨一些問(wèn)題時(shí)的利劍。這些概念的學(xué)習(xí)需要一天一天的來(lái),畢竟一口吃不成個(gè)胖子 :)
node是一個(gè)環(huán)境配置文件,當(dāng)配置node的時(shí)候npm也附帶在node上。webpack是一個(gè)包管理工具,他可以將vue.js進(jìn)行打包或解析
傳統(tǒng)項(xiàng)目只需要起后臺(tái)服務(wù)即可(可順利調(diào)用后臺(tái)API),現(xiàn)在的前端項(xiàng)目大多通過(guò)webpack管理,webpack又是基于node,node是一個(gè)運(yùn)行在服務(wù)器端的js環(huán)境,瀏覽器本身不支持的scss、es6/es7語(yǔ)法、typescript等都可在node這通過(guò)工具包npm去解決.因此前端項(xiàng)目起的node服務(wù)一般是為了解決這些問(wèn)題。
另外前端知識(shí):https://zhuanlan.zhihu.com/p/22782487