您好,登錄后才能下訂單哦!
這篇文章主要講解了“vue-cli5中yarn的報錯問題怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“vue-cli5中yarn的報錯問題怎么解決”吧!
vue-cli
拋出了錯誤如下:
Error: The project seems to require yarn but it's not installed.
報錯信息已經把原因說的很清楚了:這個項目可能需要yarn但是它并沒有安裝
。解決方案就我所知有兩種:
安裝yarn
刪掉yarn.lock
文件
親測這兩種方法都能解決問題,但是正常的多人協作項目肯定不能用第二種方法,真要這么干了就等著被批斗吧。
問題很快就解決了,但是令我疑惑的是,同樣的依賴如果沒有yarn.lock
文件項目運行項目完全是 OK 的。這說明壓根不需要yarn
,那為什么vue-cli
會認為需要yarn
呢?
定位后看到錯誤是node_modules\@vue\cli-shared-utils\lib\env.js
中的checkYarn
方法拋出的,具體代碼如下:
exports.hasYarn = () => { if (process.env.VUE_CLI_TEST) { return true } if (_hasYarn != null) { return _hasYarn } try { execSync('yarn --version', { stdio: 'ignore' }) return (_hasYarn = true) } catch (e) { return (_hasYarn = false) } } exports.hasProjectYarn = (cwd) => { if (_yarnProjects.has(cwd)) { return checkYarn(_yarnProjects.get(cwd)) } const lockFile = path.join(cwd, 'yarn.lock') const result = fs.existsSync(lockFile) _yarnProjects.set(cwd, result) return checkYarn(result) } function checkYarn (result) { if (result && !exports.hasYarn()) throw new Error(`The project seems to require yarn but it's not installed.`) return result }
簡單來說,在development
環境下,調用checkYarn
方法后:
先執行hasProjectYarn
方法,通過path.join
生成一個目標路徑,例如:D:\GitCode\vue2-typescript-starter\yarn.lock
。
再通過fs.existsSync
方法來檢測這個路徑是否真實存在。若存在,則調用hasYarn
方法。
hasYarn
方法檢查是否安裝了yarn
,若沒有,則拋出錯誤The project seems to require yarn but it's not installed.
中斷程序。
感謝各位的閱讀,以上就是“vue-cli5中yarn的報錯問題怎么解決”的內容了,經過本文的學習后,相信大家對vue-cli5中yarn的報錯問題怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。