这篇文章主要讲解了“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的报错问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!