解决yarn安装包后,文件名、目录名或卷标语法不正确

这个问题,我在网上找了无数方案,都是复制粘贴的文章,根本解决不了问题。

先来分析一下我的情况,我是用 npm 安装的 yarn:

npm i -g yarn

我重新设定了 npm 的全局安装位置和缓存位置,如何查看:

// 查看全局安装位置
npm config get prefix // E:\Tools\node\node_global
// 查看缓存位置
npm config get cache // E:\Tools\node\node_cache

再来说一下那个千篇一律的解决方案。首先查看 yarn 命令的目录:
yarn global bin 
// 我电脑上的路径为  E:\Tools\node\node_global\bin

再将获取到的路径配置到环境变量 Path 上。以上,那些文章都说问题解决了,可是却没有解决我的问题。


我们再仔细看一下这种解决方案,你会发现,他们的 npm 的全局安装位置是默认的 C 盘目录,而我修改了 npm 的全局安装位置。查看 yarn 的全局安装位置:
yarn global dir
// 查询结果是 C盘的用户目录下,我没有保存图片

结果你会发现,yarn 的全局安装位置与 bin 的位置并不一致,所以我们来修改 yarn的全局安装位置试试,将其修改为与 npm 一致(顺便把缓存位置也改了):

yarn config set global-folder "E:\Tools\yarn\global"
yarn config set cache-folder "E:\Tools\yarn\cache"

注意:建议将其放在另一个文件夹,否则会影响node安装的全局命令使用。


再次安装 umi:
yarn global add umi

测试:

umi -v
// 2.10.7

至此,问题成功解决,希望我的方法对你有所帮助。

  • 41
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 是的,Yarn 和 npm 安装包的大小可能会有所不同。Yarn 会在本地缓存安装过的包,而 npm 则不会。因此,如果你使用 Yarn 安装了同一个包多次,它在本地的缓存就会越来越大,而 npm 则不会。 ### 回答2: yarn和npm是两种常用的JavaScript软件包管理工具。他们在安装软件包时的大小可能不一样,原因如下。 首先,yarn和npm使用不同的算来压缩软件包。yarn使用了一种称为“tarball”的文件压缩格式,该格式具有更高的压缩率和更小的文件大小。而npm使用的是“gzip”压缩格式,虽然也具有一定的压缩能力,但相对而言压缩率会稍低一些。 其次,yarn和npm在处理依赖关系时的算也不同,这也可能导致安装包大小的差异。yarn使用了一种称为“yarn.lock”的文件,它记录了具体依赖关系的版本和位置信息。这个文件可以确保每次安装时都使用相同的依赖关系,从而避免不必要的下载和更新,减小了安装包的大小。而npm则使用一种基于“package.json”的算来管理依赖关系,可能会在下载和安装依赖包时产生一些不必要的重复操作,导致包的大小变大。 最后,yarn和npm也可能在下载软件包时选择不同的源或镜像服务器,这也可能导致包的大小存在差异。不同的源服务器可能存储着不同版本的软件包,其中一些版本可能经过了更高效的压缩或优化,因此在下载后的文件大小上存在差异。 综上所述,yarn和npm在安装包大小上的差异主要源于压缩算、依赖关系处理算以及源服务器的选择等因素。 ### 回答3: Yarn和Npm是两种常见的包管理工具。它们都可以用来下载和安装软件包,但是在安装包的大小方面有一些不同。 首先,Yarn和Npm使用不同的算来计算包的大小。Yarn使用的是压缩包的大小,这意味着它只计算压缩后的文件大小。而Npm使用的是解压缩后的大小,这意味着它会计算解压缩后的文件大小。 其次,Yarn和Npm在处理依赖关系时有所不同。Yarn使用了一个lock文件,将安装包的版本信息锁定在一个特定的版本上。这样可以避免在多次安装时下载不同版本的包,减小了安装包的大小。而Npm在处理依赖关系时,并不会使用lock文件,因此在每次安装时都会下载最新的包,所以安装包的大小会比Yarn大一些。 另外,Yarn在下载和安装包的过程中采用了并发的方式,可以同时下载多个包,并且可以利用缓存来提高下载速度。这样可以减少网络传输的时间,从而也减小了安装包的大小。而Npm在下载和安装包时是串行进行的,只能一个接一个地下载和安装,所以安装包的大小相对较大。 总的来说,Yarn和Npm在计算包的大小和处理依赖关系时有所不同,这导致了它们安装包的大小不一样。选择使用哪种包管理工具取决于具体的需求和项目的情况。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值