針對在「思否」上看到的關於vue,node,webpack的一些問題及回覆,作出以下的整理,給一樣不是很清楚的朋友作了解,也供本身學習php
原連接:https://segmentfault.com/q/1010000008451764/a-1020000008452409css
1.什麼是npm install?
①npm install是幫助安裝 vue,或React到本地,npm install也能夠安裝vue,React的開發工具。固然你徹底能夠像jQuery同樣本身找網站下載下來,在頁面中引入。
②npm就比如是一個前端的插件商店,裏面有各類開發者寫的包,你須要的時候就從命令行安裝就能夠了,相似與linux的apt的概念
③node.js是服務端,瀏覽器端js有不少缺陷,好比不能操做本地文件吶。而服務端的js就能夠,因此用node就能幫咱們管理文件,處理I/O,而後通過牛逼的開發者一封裝,一改造,一個grunt就出來了。html
④vue的開發自己是不依賴node的,不過vue的腳手架工具vue-cli裏面集成的webpack是基於node開發出來的。
所以只能說webpack是依賴node的。前端
⑤npm是社區、不光是node能用的庫、不少前端的庫也在裏面發佈、不少人會前端一般也就會一些node的東西vue
⑥grunt,gulp,webpack這些只是工具,幫助咱們前端完成複雜的開發,提升效率。你徹底能夠不用,若是不會的話還強行用只會加慢你的開發效率,而違背了初衷。node
2.想學vue還得先學會npm? 沒有npm還不能用vue了嗎?
沒有npm也可使用vue,vue只是一個前端框架。react
3.npm又是隨node安裝的工具,還要學node?node不是服務器端的嗎?關前端什麼事?
node是js的服務執行環境,前端經常藉助 node幫助前端實現工程化。不少工具是基於node的,好比說你說的webpack,grunt。linux
4.webpack,grunt有什麼用?
webpack,grunt是前端工程化的工具,能夠幫助前端完成混淆壓縮,校驗等工做webpack
5.服務端渲染又是什麼?服務能解析js的不就只有node嗎?
實戰中沒用過,請參考官方文檔https://cn.vuejs.org/v2/guide/ssr.htmles6
6.我就不能單純的用 php+vue或者php+react開發?
能夠單純的利用 php+vue或者php+react開發
7.apache是什麼?和node有什麼關係?
apache是web服務器,用於起後臺服務;npm run dev本質也是起一個服務,不過是利用node起的服務,起的是前端項目的服務;二者沒有聯繫。(你可使用npm run命令來運行package.json文件中scripts裏的任何條目)
8.有沒有懂的解譯下 vue,react之流框架,從開發,到用戶看到這流程是怎麼實現的。
問題太大,能夠寫本書。並且老實講,一切都須要實戰中才能有更深的體會
最後總結一下:
前端圈所謂得「亂」,一個是近些年前端框架層出不窮,工程化,解決方案愈來愈多,已經脫離了通常人認爲的那個「好單純好不作做」的前端。就像後端開發有不少工具協做開發同樣,前端也須要愈來愈多的工做完成前端面臨巨大的工做量。 前端的行業發展已經不是那種後端在php,jsp中寫一些html,前端來寫一些css來完成工做的階段。老實講,我如今80%的時間在寫js。前端已經不是後端開發的最後一步甚至「附屬品」,而成爲真正意義的「客戶端」。複雜度也就慢慢和app等客戶端愈來愈接近。
總的來講,你仍是能夠按照原先的開發方式來開發本身的應用,固然考慮引進工具一些先進的理念方法來協助開發。node,webpack,vue這些概念不該該成爲本身開發中的阻礙,而是在本身在面臨一些問題時的利劍。這些概念的學習須要一天一天的來,畢竟一口吃不成個胖子 :)
node是一個環境配置文件,當配置node的時候npm也附帶在node上。webpack是一個包管理工具,他能夠將vue.js進行打包或解析
傳統項目只須要起後臺服務便可(可順利調用後臺API),如今的前端項目大多經過webpack管理,webpack又是基於node,node是一個運行在服務器端的js環境,瀏覽器自己不支持的scss、es6/es7語法、typescript等均可在node這經過工具包npm去解決.所以前端項目起的node服務通常是爲了解決這些問題。
另外前端知識:https://zhuanlan.zhihu.com/p/22782487