針對在“思否”上看到的關於vue,node,webpack的一些問題及回復,做出如下的整理,給同樣不是很清楚的朋友做了解,也供自己學習
原鏈接:https://segmentfault.com/q/1010000008451764/a-1020000008452409
1.什么是npm install?
①npm install是幫助安裝 vue,或React到本地,npm install也可以安裝vue,React的開發工具。當然你完全可以像jQuery一樣自己找網站下載下來,在頁面中引入。
②npm就好比是一個前端的插件商店,里面有各種開發者寫的包,你需要的時候就從命令行安裝就可以了,類似與linux的apt的概念
③node.js是服務端,瀏覽器端js有很多缺陷,比如不能操作本地文件吶。而服務端的js就可以,所以用node就能幫我們管理文件,處理I/O,然后經過牛逼的開發者一封裝,一改造,一個grunt就出來了。
④vue的開發本身是不依賴node的,不過vue的腳手架工具vue-cli里面集成的webpack是基於node開發出來的。
因此只能說webpack是依賴node的。
⑤npm是社區、不光是node能用的庫、很多前端的庫也在里面發布、很多人會前端通常也就會一些node的東西
⑥grunt,gulp,webpack這些只是工具,幫助我們前端完成復雜的開發,提高效率。你完全可以不用,如果不會的話還強行用只會加慢你的開發效率,而違背了初衷。
2.想學vue還得先學會npm? 沒有npm還不能用vue了嗎?
沒有npm也可以使用vue,vue只是一個前端框架。
3.npm又是隨node安裝的工具,還要學node?node不是服務器端的嗎?關前端什么事?
node是js的服務執行環境,前端常常借助 node幫助前端實現工程化。很多工具是基於node的,比如說你說的webpack,grunt。
4.webpack,grunt有什么用?
webpack,grunt是前端工程化的工具,可以幫助前端完成混淆壓縮,校驗等工作
5.服務端渲染又是什么?服務能解析js的不就只有node嗎?
實戰中沒用過,請參考官方文檔https://cn.vuejs.org/v2/guide/ssr.html
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