Vue啓動報錯 Cannot find module 'webpack/bin/config-yargs'

項目背景是 使用Vue開發SPA單頁面應用node

鱉廢話,先上錯誤react

Cannot find module 'webpack/bin/config-yargs'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (D:\my\react-task\node_modules\webpack-dev-server\bin\webpack-dev-server.js:24:1)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
......
複製代碼

好吧,我認爲除了最上面這句,下面的信息均可以先放到一邊(絕對不是由於我看不懂才用省略號代替的).webpack

碰到錯誤怎麼辦,搜索引擎走一走,蜻蜓點水看了一圈(爲了先解決問題),固然錯誤最後是解決了的。web

錯誤緣由

這個錯誤是在項目啓動的時候冒出來的。在報錯以前我在命令提示符裏瞎操做了一通,如今都忘了當時幹了什麼了,反正最後的結果就是報了上面那個錯,這裏給自已一個'啪啪啪'。npm

根據我在網上看到的,有兩種說法:json

一種說是webpack 和 webpack-dev-server版本不匹配
另外一種是webpack4以後,將config-yargs放到了webpack-cli裏面去了bash

怎麼看它們的版本呢?項目根目錄下有一個package.json文件,裏面放了項目的描述和導入的依賴包描述,而後有一個devDependencies屬性,在這裏面就能夠看到上面三個模板依賴的版本 。webpack-dev-server

如下是個人(版本更改後的):ui

"webpack": "^3.8.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.7",
複製代碼

解決方案

先打開cmd,定位到你本地的項目下,而後能夠嘗試兩種解決方案搜索引擎

  1. webpack 版本在 4 以上時
    安裝 webpack-cli,而後更新
npm install webpack-cli -D
npm update
複製代碼

我當時版本就是 4 點幾,而後執行了上面的操做,結果發現 webpack-cli 是沒下成功仍是咋地,反正仍是啓動失敗。

嗯哼,不要緊,我還能撐。

  1. 修改webpack和webpack-dev-server版本
    先刪後改,卸載以後安裝指定版本
//卸載版本
cnpm uninstall webpack -g
cnpm uninstall -g webpack-dev-server
//安裝指定版本
cnpm install webpack@3.8.0 --save-dev
cnpm install webpack-dev-server@2.9.7 --save-dev
複製代碼

(不要糾結 -g 在前在後,據我實驗無所謂。)
這上面兩個版本是不衝突的(貌似webpack3 和 webpack-dev-server2次要版本高一點的 都還匹配,我沒試過,猜的)。

固然,若是到此時你仍是報錯,嗯嗯嗯~。
把node_modules(在項目根目錄下)刪了吧,重裝。
刪除文件夾,在cmd中輸入 nmp install。

要是再搞不定,咳咳,那要不就別搞單頁面應用了吧。

over over over

相關文章
相關標籤/搜索