在做开发的时候,比如PHP 会执行yarn命令安装相关的依赖,但是总会报各种各样的问题,如下:
1."EPROTO: protocol error, symlink '../../../parser/bin/babel-parser.js'
执行:yarn install
vagrant@homestead:~/code/duoxiaozhan-admin$ yarn install
yarn install v1.22.17
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning " > sass-loader@7.3.1" has unmet peer dependency "webpack@^3.0.0 || ^4.0.0".
error An unexpected error occurred: "EPROTO: protocol error, symlink '../../../parser/bin/babel-parser.js' -> '/home/vagrant/code/duoxiaozhan-admin/node_modules/@babel/core/node_modules/.bin/parser'".
info If you think this is a bug, please open a bug report with the information provided in "/home/vagrant/code/duoxiaozhan-admin/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
原因分析:
npm默认会使用 symbolic links来安装组件,也即我们在linux系统里经常用的软链接(ln -s)或硬链接(ln),但是有些文件系统不支持文件链接,比如 Windows(或者说出于安全原因禁用了),有时候linux 系统运行在有 windows分区的硬盘上也不支持链接,比如virtualbox在windows主机上默认禁止在共享文件夹里使用 symbolic links ,当然也是出于安全考虑。
那么 npm install 默认需要使用 symbolic link,而且这也本身也是 npm 比较重要的一个特性,但如果我们的系统不支持这一属性的话,就会报上面的错误了。当然,你也可以整体设置一下npm,让它默认不再使用文件链接功能了,执行:
这样了以后,再执行相关命令就可以不用带–no-bin-links了。
2.yarn 查看配置
1、查看版本
yarn -v
2、查看配置
yarn config list
3、配置淘宝镜像
yarn config set registry https://registry.npm.taobao.org/
