1. 程式人生 > >為什麼我不推薦你使用vue-cli建立腳手架?

為什麼我不推薦你使用vue-cli建立腳手架?

最近在知乎看到一個問題,原問題如下:

“很奇怪,為什麼現在能找到自己手動建立vue腳手架的文章非常少,而且大家似乎對webpack4的熱情並不高,對於想基於vue2.0+webpack4搭建一個腳手架的我來說資料真是少得可憐。難道現在一般的做法就是直接從vue-cli開始然後改成自己需要的模樣嗎?難道就沒有人從零開始搭建一個漸進增強的腳手架?這一點我很疑惑,希望大牛給點指導。”

這個問題我之前在公司也曾想過,當初入門vue專案也是從一個 npm install vue-cli -g 的命令列開始的,覺得官方提供的vue-cli腳手架很友好,不用想vue+webpack的工作流怎麼搭建,vue-loader 和 css-module怎麼配置,如何安裝使用eslint和editorconfig等,就可以直接進入業務程式碼的開發階段。

當然,以上是對於寫業務程式碼的前端一線編碼人員來說的,對於追求上進的你當然不滿足於一直寫業務程式碼,你也想知道一個專案在破土動工前,前端leader是怎麼搭建一個前端專案的工作流的,如何去手動配置一個具體專案的webpack打包檔案,包括後期的SSR,服務端渲染。

這些都是你提升自己內功的砝碼,也是初級前端和中級前端的區別所在,初級前端只會在leader安排下的一個模組裡寫點業務程式碼而不用去管前端工程的問題,這些問題都被前端leader搞定了,你只需呼叫他寫好的命令或者外掛即可。

中級前端或者更進階者就有統籌全域性的能力,類似於文章開頭說的,能手動建立一個和公司專案需求深度定製的vue腳手架,而不再依賴於官方提供的vue-cli,一方面自己定製的腳手架哪出了問題自己心裡清楚,從而也能培養自己前端架構的能力,另一方面這也是月薪10K與20K的技術差距。

當然,如果你直接使用了vue-cli,你的領導要求你將webpack的版本從3升級到最新的大版本4,你會不會一臉懵逼呢?舉個例子: 在webpack4.0中,如何使用extract-text-webpack-plugin配置css單獨分離打包,以及如何解決在升級過程中碰到的一些坑?如果你沒有親手升級過webpack4,你根本不會發現這些問題,例如extract-text-webpack-plugin的報錯:

(node:12712) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
    E:\***\myproject\webpack-vue-elementUi\node_modules\webpack\lib\Chunk.js:460
                    throw new Error(
                    ^
    
    Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead
        at Chunk.get (E:\***\myproject\webpack-vue-elementUi\node_modules\webpack\lib\Chunk.js:460:9)
        at E:\***\myproject\webpack-vue-elementUi\node_modules\extract-text-webpack-plugin\dist\index.js:176:48
        at Array.forEach (<anonymous>)
        at E:\***\myproject\webpack-vue-elementUi\node_modules\extract-text-webpack-plugin\dist\index.js:171:18

這個問題的解決方式你在百度上暫時還搜不到答案,只能是依靠平時閱讀官方文件、技術社群等尋找解決之道。 後來經過排查你會發現是由於extract-text-webpack-plugin目前還沒有webpack4版本。可以使用該方式npm install [email protected]解決。

這就是硬實力的一種體現,在公司裡技術的高低,體現於公司專案中碰到的難以解決的bug的解決能力。你可以看看平時在公司裡誰解決的bug多,一般不是太難的bug都是前端小組的成員去解決,比較難的bug大多數情況下是前端小組的leader去解決的。

這種硬實力的體現,折射出他為何是leader,你為何是被管理者,同樣的崗位,放你上去,你不一定能解決掉專案中碰到的問題,而他能。所以,童鞋們,人家之所以是leader,是因為人家有高你一籌的技能,而這恰恰是你現階段所缺少的。

俗話說,不想當leader的程式猿不是好碼農。所以,平時你們可以在公司裡看看你們的leader在忙些什麼。

這就是我為什麼不推薦你使用vue-cli建立腳手架的原因(此文的受眾是想要進階中級的初級前端人員)。

接下來,我會分章節手把手教大家如何從零開始一個vue+webpack前端工程工作流的搭建,以及SSR服務端渲染。文章預告如下:

  • 一個正式專案的目錄結構是怎麼形成的
  • vue-loader是如何配置的
  • 淺談css-module配置
  • 安裝使用eslint檢查的小技巧
  • 如何在前端專案中配置editorconfig以及precommit
  • 怎麼用createRenderer的方式進行服務端渲染
  • 正式環境打包以及非同步模組打包優化

以上內容均會第一時間釋出在我的公眾號:閏土大叔 ,歡迎關注。