element-ui以及echarts按需引入問題

最近新建項(xiàng)目時(shí)遇到了很多前端基礎(chǔ)建設(shè)方面的問題,于是我也化身為了webpack工程師(面向百度版)。這篇文章講一下按需引入方面的問題。

element按需引入

按照官網(wǎng)的說法 借助 babel-plugin-component,我們可以只引入需要的組件,以達(dá)到減小項(xiàng)目體積的目的。

npm install babel-plugin-component -D
安裝完這個(gè)插件之后在根目錄中新建.babelrc文件,并將內(nèi)容修改為

{
  "presets": [["es2015", { "modules": false }]],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

實(shí)際這樣操作會(huì)導(dǎo)致項(xiàng)目無法啟動(dòng),參考了網(wǎng)上許多的文章,最初我改成了這樣:

{
  "presets": [["@babel/preset-env", { "modules": false }]],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

不需要再額外安裝依賴。

結(jié)果我發(fā)現(xiàn)打包之后element的體積并沒有減小,表面上是按需引入,但是并沒有達(dá)到按需引入的效果,而且echarts也受到了影響,最終我參考另一篇文章改成了如下所示的樣子才得以解決:

{
  "presets": [["@vue/cli-plugin-babel/preset"]],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

package.json增加這兩項(xiàng)

"devDependencies": {
    "babel-polyfill": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
}

關(guān)于按需引入組件主題這點(diǎn),styleLibraryName我始終無法修改成我實(shí)際用的自定義主題的路徑,最后還是直接在代碼里全量引入自定義主題了。

其實(shí)最開始我還沒懷疑到這個(gè)上面,結(jié)果我用ivew+echarts的項(xiàng)目模板試了下發(fā)現(xiàn)按需引入完全沒問題,通過控制變量法可以猜測是element的鍋,果不其然。

echarts5 按需引入

項(xiàng)目中結(jié)合了vue-echarts使用,按照文檔做本來沒什么問題。但當(dāng)我使用了echarts官方的自定義主題構(gòu)建工具之后發(fā)現(xiàn)按需引入后打包的體積反而還變大了...

最后上git上提issue被告知在當(dāng)前版本(echarts5.1.2)引入主題之后確實(shí)會(huì)影響按需引入,echarts5.3會(huì)處理這個(gè)問題。好吧echarts目前只能整體引入了。

后記

最近新的項(xiàng)目還處于產(chǎn)品設(shè)計(jì)階段,而且這個(gè)時(shí)間持續(xù)了好久,所以我倒是有空把項(xiàng)目的基礎(chǔ)設(shè)施好好打磨一番,同時(shí)也發(fā)現(xiàn)了很多之前沒注意到的問題,所以 webpack工程師開始養(yǎng)成...... 同時(shí)我為了驗(yàn)證一些打包后的問題,還特地購買了云服務(wù)器,后面的話會(huì)學(xué)習(xí)一些運(yùn)維的知識。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容