為什麼node出現之後,各種前端構建工具和手段才如雨後春筍般層出不窮?

時間 2021-05-30 13:27:06

1樓:Memoirs

先從我寫的乙個工具說起,來看看為什麼會這樣。

我的工具是通過命令列的命令檢測檔案的大小寫路徑是否匹配,因為window上路徑忽略大小寫。思路是:1.

通過命令列得到引數。2.獲取引數內輸入的目錄下的所有js檔案,也可能包括css檔案、vue檔案。

3.獲取每個檔案的內容,解析成ast樹,通過ast樹獲取import語法引入檔案的路徑,解析成絕對路徑。4.

將這個路徑和真實路徑進行比對,如果大小寫不一致,就輸出錯誤資訊。

如果沒有yarg,我就要自己寫解析引數的方法。沒有glob,我就要自己寫獲取所有檔案路徑的方法。沒有babel、postcss,我就寫不下去了,因為我的水平寫不出編譯器,我的想法就會夭折。

但是我用了別人的工具,開發出了新的工具實現了我的想法,或許某一天別人也用了我的工具實現了他的想法。所以node一出來,每個人都有可能實現他的腦洞大開,這也是js和node生態繁榮(庫很多)的原因吧。

2樓:

不請自來,抖個機靈!

以上的各位大牛說的觀點都對。作為乙個普通的前端從業人員,我個人覺得除了以上原因以外還有一點就是nodejs的出現更加壯大了整個前端行業,君不見自從nodejs概念出現後,前端行業一年比一年火爆,吸引了大量軟體開發人員參與進來。大家可以統計一下,現在前端行業裡有多少大牛是從別的語言轉過來的,這些人的加入不僅帶來了人員的壯大,更加帶來了其他語言工程化的經驗,於是各種工程化工具就在這些有識之士的努力造輪子下如雨後春筍般不斷的產生!

同時不得不說一直到目前js都不能算是一門非常完善的語言,更不用說整個前端行業了,還有許多地方需要從業人員來造輪子。正好這幾年隨著js語言的完善,隨著前端行業的火爆,隨著從業人員水平的提高,以及從業人員對其他語言的了解和對現狀的不滿,於是就有了各種各樣的前端概念,工具不斷出現,完善這整個js社群!我覺得歸根結底還是由於前端行業的火爆產生的這一切現象,也是js社群慢慢走向完善的乙個過程!

3樓:COIN

我認為並不是node出現了,才導致了前端構建工具的爆發。

而是前端專業化了。

乙個比較好的例子,extjs。

這貨出來的時候我可能還在玩泥巴,但是他們已經推出了乙個js文件生成工具——jsduck。

python寫的,與node一毛錢關係都沒有。

再說句難聽點的話:90%的前端都沒有寫工具的能力,目前前端的工具大都是這10%中的人寫出來的,而且可以保證的是,這10%的人絕對不是僅會js。

隨著前端越來越專業化,大小公司都出現了專業的前端團隊,為了推動生產力,必然會有人去寫這些工具,這是乙個需求推動的過程,與語言無關。

難道C/C++、Python、Ruby就不能寫構建工具了?

4樓:龍泉寺掃地僧

我覺得其他答案都沒答到點子上,故怒答一波。

其實真實原因是前端在這幾年裡發展迅猛,積累了大量人才和專案,而js又先天各種設計缺陷,工具鏈更不完善。所以有了node 這個通用輪子一出來,可以用輪子造輪子,甚至可以跨平台造輪子,所以大量人才一下找到突破口,各使神通,各種造輪子,才出現目前百花齊放,前端工具大爆發的場面。簡而言之,長期前端專案的快速增長和js的先天缺陷,以及node乙個恰好的時機出現填補了空白,這幾原因導致今天的局面。

5樓:賀師俊

可看我去年的演講:前端構建的過去、現在和未來

[錄影 1:29開始(但1:36之前沒有錄到聲音)]

簡言之,在node出現以前也有類似的工具——我演講的「過去」部分里列了許多有名的工具,但是它們都有共同的缺點:前端工具缺乏統一平台。而node的出現解決了這個問題,加上一些其他因素,使得我們迎來了前端構建工具的爆發。

6樓:

樓上有位答案說的好啊,前端js就是太弱雞了才會導致各種東西層出不窮來修補這個弱雞,如果一開始就是設計完善的語言,module啥的都有,至於現在又搞es6又es7的麼,node也是彌補了js以前只能執行在瀏覽器中,api少的可憐的局面。

出來混都是要還的?趕緊各種標準搞起來,弄好了強大了,就沒有那麼多門門道道了吧()

7樓:陳漢輝

需求與解決方案是互相促進的,正是因為前端的需求不斷複雜,傳統技術無法滿足新的需求,前端工具才發展的。node的出現加速了這個過程,node並不是這個過程發生的原因。

8樓:itlr

前端專案的構建工具在node(還有rhino)出現之前是不足的,主要原因是跑在普通瀏覽器裡的JS執行時跳不出瀏覽器這個沙盒,無法直接操作檔案,而這是構建工具必須具備的底層功能。那時候JS不是一種系統程式語言,web開發社群沒有足夠的動力去用一種非JS的系統程式語言去開發各類構建工具。

Node讓JS跳出了瀏覽器的沙盒,可以進行系統呼叫,把它變成了一種系統程式語言,這樣web開發人員就有動力去用同樣的語言去實現各種工具了,因為這種語言他們已經很熟悉。

另乙個不能忽略的影響是Ruby社群,特別是ROR以及Rake構建工具的啟發。

你最近在造什麼有趣的前端 node 輪子?

陳月半 Fluent Windows Fluent Design 風格的 React 元件庫大概長這個樣子啦 fluent org fluent windows 熊貓大俠 最近一直在寫node命令列,寫了10幾個吧,都是內部使用,感覺比較有意義有挑戰的是寫了雲鳳蝶模組化元件開發 管理的node工具,...

為什麼前端框架 react vue 裡會出現生命週期的說法?

生命週期 只是為了方便描述乙個東西的出現與消失,這是乙個概念的東西。或者這麼說,只要是執行的程式,程式裡的萬物都活在它的生命週期裡。 這個概念來自於OOP。乙個物件從被建立到銷毀必然經歷多個狀態,在對應狀態裡做該做的事,這就是生命週期。這玩意在其他地方十年前就玩爛了。 緋一 生命週期對於框架的開發者...

為什麼一談到結婚就出現各種矛盾

砂紙磨木星 因為婚姻是乙個常態化平凡的過程,但我們的心智很多時候更多停留在自認為的自命不凡,情感需要維護,愛情與婚姻需要經營,何況這件事情是兩個家庭衍生為第三個家庭的過程。愛情在,親情也在,在每乙個階段我們都在不斷的經歷和改變。矛盾也就會產生,經營好愛情不代表經營好婚姻,不論是誰都需要調整,經營,並...