Vue項目 Module build failed: TypeError: this.getResolve is not a function at Object.loader……

由於還用不慣 webpack 4,特別是採用了vue-cli3 搭建的項目,由於還沒搞懂在這種環境中自己手動調整配置(vue-cli3 簡化了配置,原來很多的配置都集成到vue-cli3內部,不需要在通過顯性的配置了,至少目前覺得反而不方便了),所以又換回了webpack 3.6,還是採用vue-cli2(vue init webpack projectName 搭建環境)。
當採用scss來實現樣式時,需要安裝sass-loader和node-sass,才能正常加載解析scss文件。
然而問題就這麼來了,編譯報錯,前前後後檢查了很多遍,明明已經安裝了sass-loader啦,報錯還是提示loader異常,以下是完整的報錯:

 ERROR  Failed to compile with 1 errors                                                                                                                                                                                  11:04:57 PM
     error  in ./src/views/module/customer/topology/topologyList.vue
    
    Module build failed: TypeError: this.getResolve is not a function
        at Object.loader (E:\appEx\PreResearch\orchestrator\topology\node_modules\sass-loader\dist\index.js:52:26)
    
     @ ./node_modules/vue-style-loader!./node_modules/css-loader?{"sourceMap":true}!./node_modules/vue-loader/lib/style-compiler?{"vue":true,"id":"data-v-0b9912b5","scoped":false,"hasInlineConfig":false}!./node_modules/sass-loader/dist/cjs.js?{"sourceMap":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./src/views/module/customer/topology/topologyList.vue 4:14-414 13:3-17:5 14:22-422

 

從報錯來看,應該還是loader的問題,然後就刪除重裝sass-loader,node-sass,來來回回不下5次,還是報同樣的錯誤,甚至懷疑是不是webpack.dev.config.js中沒有配置好?一步步檢查,也沒有發現問題。
最後換git bash 來重新執行了一邊npm install 代碼,這個時候發現了問題…… ,由於之前我都是直接在vsCode中直接新建終端來執行shell腳本的,界面比較小,所以沒有顯示完整的日誌,這次終於發現了蹊蹺。

npm WARN [email protected] requires a peer of webpack@^4.36.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of sass@^1.3.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of fibers@>= 3.1.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

 

我安裝的sass-loader由於沒有限定版本,安裝的是最新的8.0.0版本,該版本是支持webpack4.36.0的,導致不匹配,最後再次刪除安裝的sass-loader,並重新指定7.0.3版本的sass-loader,終於不報錯了。

指定特定版本
npm install [email protected] --save-dev

這裏還有一個版本號的問題,如果想指定明確的版本號,那麼直接寫死對應的,即@7.0.3 那麼安裝的就是7.0.3的,如果不確定版本號,又能接受微調的,那麼可以採用 “~” 即 ~7.0.3 來表示,允許第二位進行更新優化,即 接受 7.0.0 ~ 7.1.0 即只要第一位不變,第二位允許加1,其他的選取最新的版本編號。^7.0.3 則表示允許第一位加1,即在7.0.3 ~ 8.0.0 之間的版本(不包括8.0.0),如果直接用 * 號代替,則表示不限制,如果想要獲取最新版本,則可以直接加上latest。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章