1. 程式人生 > >vue爬坑之旅——mint-ui按需引入

vue爬坑之旅——mint-ui按需引入

今天開專案,決定使用 Vue 來進行開發,遂開始尋找 Vue 相關的 Ui 元件庫,找了一圈看下來,Github 上 star 數最高的二個分別為 Mint-ui 和 Vux,分別掃了他們的二維碼體驗了下,發現 Vux 在介面切換的時候不流暢,所以就剩下 Mint-ui 這一個選擇了。下面開始今天的爬坑之旅。

坑一:npm 5.8.0

在新建專案的時候發現 npm 有新的版本升級,就順手升級了下 npm (其實是強迫症,不升級不舒服斯基,,,,),升級過程順利,然後到了 npm install 的時候就開始悲劇了,install 完成之後老是報錯,

npm error write after end
  •  

忘記截圖了,應該是這個錯誤,既然 install 的時候出錯了,那麼當然就不能愉快的 run 了,經過一番折騰,終於找到原因,原來這是 npm 高版本的一個bug,很多人都碰到了,從 npm 5.7.0 開始有這 bug,,,所以積極升級並不是一個好事,這裡把 npm 降級到 5.6.0 可以解決這個問題。

npm install [email protected] -g

坑二:Mint-ui 按需引入文件

按照 Mint-ui 的官方文件,首先 install Mint-ui ,這沒什麼好說的,安裝完之後就是在專案中引入了,按照官方的說法,有全部引入和按需引入二種方式。作為實際專案開發來說,當然應該選擇按需引入的方式,這可以減小我們專案的體積,加快載入速度。 
按照文件,先安裝 babel-plugin-component,然後修改 .babelrc 在這裡文件上的說法是將 .babelrc 檔案改為:

  1. {

  2. "presets": [

  3. ["es2015", { "modules": false }]

  4. ],

  5. "plugins": [["component", [

  6. {

  7. "libraryName": "mint-ui",

  8. "style": true

  9. }

  10. ]]]

  11. }

那麼我們開啟這個檔案看一下,未修改過的檔案內容如下:

  1. {

  2. "presets": [

  3. ["env", {

  4. "modules": false,

  5. "targets": {

  6. "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]

  7. }

  8. }],

  9. "stage-2"

  10. ],

  11. "plugins": ["transform-vue-jsx", "transform-runtime"]

  12. }

這裡面是有一些預設配置的,如果我們直接把檔案修改成文件上的那樣的話我覺得是有問題的,我覺得這裡應該是寫文件的人沒有把意思說清楚,應該是在這個檔案中將 Mint-ui 需要的配置新增進去,而不是直接覆蓋原檔案,所以我是將文件中說的二個配置加入到原檔案相應的內容下面,修改後的內容如下:

  1. {

  2. "presets": [

  3. ["es2015", { "modules": false }],

  4. ["env", {

  5. "modules": false,

  6. "targets": {

  7. "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]

  8. }

  9. }],

  10. "stage-2"

  11. ],

  12. "plugins": [

  13. "transform-vue-jsx",

  14. "transform-runtime",

  15. ["component", [

  16. {

  17. "libraryName": "mint-ui",

  18. "style": true

  19. }

  20. ]]

  21. ]

  22. }

到了這裡,準備工作已經做完,按照文件,引入需要的元件,使用,然後 npm run dev ,你以為可以愉快的玩耍了?too yang。 
在執行命令之後,會出現報錯 
這裡寫圖片描述

Module build failed: Error: Couldn't find preset "es2015" relative to directory XXXXXXXX

出現這個錯誤是因為我們沒有安裝 babel-preset-es2015,這個時候只需要單獨安裝下 babel-preset-es2015 就可以了

npm install babel-preset-es2015

安裝好了之後就可以正常運行了,這個時候就可以實現元件按需引入了。

更多的思考

問題是解決了,那麼 babel-preset-es2015 這個到底是什麼東西呢?找了下,發現一個帖子, https://zhuanlan.zhihu.com/p/29506685 
看完上面的帖子,再結合 babelrc 檔案中的內容來看,其實 babel-preset-es2015 這個依賴我們完全是沒有必要引入的,所以文件中寫的第一個配置 [“es2015”, { “modules”: false }] 也是完全沒有必要的,因為官方已經為我們把配置寫好了,原來的 es2015” 已經被 “env” 取代,而 “env” 這個配置已經給我們寫好了。 
現在將 [“es2015”, { “modules”: false }] 去掉,然後將 babel-preset-es2015 也刪掉,重新 run ,發現也是可以的。 
到這裡,我想大家應該已經清楚了,這還是文件的坑,文件上面的配置已經過時了,但是他們沒有更新,導致我們在接入的時候話費額外的時間和精力。

總結

最後在總結下,如果要按需引入 Mint-ui 的元件,其實要做的事情很簡單,首先建立專案,初始化模版,安裝依賴,這些是每個專案都需要做的。 
然後是安裝 Mint-ui,修改 .babelrc 檔案,注意這裡只需要在 plugins 下面加入如下程式碼即可

 
  1. ["component", [

  2. {

  3. "libraryName": "mint-ui",

  4. "style": true

  5. }

  6. ]]

然後按照文件的指示就可以愉快的玩耍了。 

以上就是這次的爬坑過程,記錄下來,希望對碰到同樣問題的朋友能夠有所幫助。

原文地址:https://blog.csdn.net/zgh0711/article/details/79700185

這裡貼上複製過來是怕收藏的話作者會把文章給刪除了!