最近element-ui升級到2了,添加了不少功能,可喜可賀,可喜可賀!
然而,產品的需求依然那么刁鑽,上傳與刪除圖片還是要去改源碼,為了同時用新的ele,決定在2中改源碼
然而,遇到問題了。
一開始與之前博客中描述的一樣,將github上的目錄弄下來,修改對應的組件,然后執行npm run dist,如下圖:
沒錯,竟然報錯了,報錯的文件也很奇葩,是一個我根本沒動過也沒見過的json文件。
回頭看了一個目錄,在ele1中是沒有這個文件的:
element-ui1:
element-ui2:
雖然不知道這個文件干嘛用的,不過報了錯就進去看一眼:
一個很普通的配置文件,報錯的地點圈起來了,是一個冒號。我一開始以為是中文冒號,后來發現不對,確實沒啥問題,但是就是報錯。
就算我注釋了browsers那一行,下面features的冒號也會報錯,這個冒號有毒!
然后我嘗試注釋掉里面的代碼,然后執行npm run dist,依然不行,報錯。
不知道這是什么鬼,於是開始研究這個指令本身,打開package.json文件,找到scripts中的dist,這個指令有點長:
"dist": "npm run clean && npm run build:file && npm run lint && cooking build -c build/cooking.conf.js,build/cooking.common.js,build/cooking.component.js -p && npm run build:utils && npm run build:umd && npm run build:theme",
一連串的調用指令,然后其中某個環節報了錯。
之前的報錯來的很快,所以看一下執行過程就明白了:
這里代表npm run clean,執行成功。
npm run build:file也執行成功
這樣就明顯了,第三個指令npm run lint指令報錯了,將其單獨抽出來執行也驗證了我的想法。
然后看一眼這個指令
"lint": "eslint src/**/* test/**/* packages/**/*.{js,vue} build/**/* --quiet",
意思很明了,簡單來講就是對src、test、packages下所有的js、vue文件,build下的所有文件做語法檢查,用的就是eslint。
雖然不懂為什么那個JSON文件語法有問題(根本沒動過),但是明白了這個指令只是純粹的檢查,不會影響lib的生成,那就好辦了!
直接將該指令從dist中刪除,跳過檢測直接生成lib。
結果十分完美!至於這個報錯,可能是eslint的問題吧,怎么看那個JSON文件都沒什么格式問題。