当用户文件夹(UserProfile env var)文件夹名称或路径中有空格时,Yarn PM 无法在 Windows 中工作

问题描述 投票:0回答:1

如标题所述,如果我的 UserProfile 文件夹路径中有空格,我刚刚在系统(Windows 11 64 位)中安装的 Yarn PM(包管理器)将无法工作。

我的用户文件夹名称是“名字姓氏”,因此当我尝试

yarn create nuxt-app hello_world
时,经过几个成功步骤后,它会抛出以下错误并退出:

    - create-nuxt-app
'C:\Users\Firstname' is not recognized as an internal or external command,
operable program or batch file.
error Command failed.
Exit code: 1
Command: C:\Users\Firstname Surname\AppData\Local\Yarn\bin\create-nuxt-app
Arguments: hello_world
Directory: <path/to/my/project>
Output:

我已经尝试按照这个答案的建议进行操作,但徒劳无功,我猜

yarn
不使用
npm-cache
作为
create-app-<x>
命令。

我的假设错了吗? NuxtJS 安装在我的系统中,所以没有问题。

如何修复上述错误?当然,我会尽量避免更改我的用户配置文件文件夹名称。

windows powershell yarnpkg yarn-v2 yarnpkg-v2
1个回答
0
投票

解决方案1

首先,运行以下命令:

yarn cache dir
yarn global bin

示例输出应类似于:

C:\Users\Firstname Lastname\AppData\Local\Yarn\Cache\v6
C:\Users\Firstname Lastname\AppData\Local\Yarn\bin

复制两个输出,然后运行以下两个命令,根据您的用户名名字稍加修改:

yarn config set cache-folder "C:\Users\Firstname~1\AppData\Local\Yarn\Cache" 
yarn config set prefix "C:\Users\Firstname~1\AppData\Local\Yarn" 

尝试使用yarn create,如果不起作用请尝试解决方案2。

解决方案2

有问题的路径用作示例:

C:\Users\FirstName LastName

关闭所有正在运行的 shell 在管理模式下运行cmd(mklink是cmd的一个功能,在PowerShell中不起作用)

使用 mklink 命令创建目录连接(目录硬链接):

mklink /J "C:\Users\FirstNameLastName" "C:\Users\FirstName LastName"

运行命令

yarn cache dir
yarn global bin

记下输出,它们看起来像这样:

C:\Users\FirstName LastName\AppData\Local\Yarn\Cache\v6
C:\Users\FirstName LastName\AppData\Local\Yarn\bin

运行命令

yarn config set cache-folder "C:\Users\FirstNameLastName\AppData\Local\Yarn\Cache"
yarn config set prefix "C:\Users\FirstNameLastName\AppData\Local\Yarn" 

重新加载你的shell

运行命令

yarn cache dir
yarn global bin

确认新输出

假设路径已正确更改,yarn create 现在应该可以正常工作。

来源

纱线包装。 “如果 Yarn 位于文件路径有空格的文件夹中,则无法运行 Yarn Create · 问题 #6851 · Yarnpkg/Yarn。” GitHub,github.com/yarnpkg/yarn/issues/6851。

© www.soinside.com 2019 - 2024. All rights reserved.