electron Yarn在尝试构建电子应用程序时抛出错误

doinxwow  于 2022-12-08  发布在  Electron
关注(0)|答案(2)|浏览(213)

当我尝试通过yarn create electron-app "my-app"创建电子应用程序时,它抛出了一个错误消息

'C:\Users\Lincoln' is not recognized as an internal or external command,
operable program or batch file.
error Command failed.
Exit code: 1
Command: C:\Users\Lincoln Muller\AppData\Local\Yarn\bin\create-electron-app
Arguments: my-app
Directory: C:\Users\Lincoln Muller
Output:

我应该怎么做?我是Yarn的新手,NPM运行得很好。这也只发生在Windows上,当我在Monterey上使用iMac或Linux笔记本电脑时,命令运行得很好。

vmpqdwk3

vmpqdwk31#

Yarn似乎认为它可以运行程序create-electron-app而不考虑文件路径中的空格。不幸的是,这不起作用,只有到第一个空格的部分被认为是要运行的程序,因此您会得到错误消息,C:\Users\Lincoln不是有效的命令。
这个问题在this Yarn issue中讨论过。解决方案的关键思想是接受Yarn的行为,并给予它一个不包含空格的文件路径。有两个具体的想法:

选项A -使用目录名缩写跳过空格
yarn config set cache-folder "C:\Users\Lincol~1\AppData\Local\Yarn\Cache"
yarn config set prefix "C:\Users\Lincol~1\AppData\Local\Yarn"

要实现这一点,请确保从实际目录名中提取6个字符,然后追加~1。如果空格恰好出现在前6个字符中,则此方法将不适用于您。

选项B -创建另一个用户文件夹,跳过空间(使用连接)
mklink /J "C:\Users\Lincoln-Muller" "C:\Users\Lincoln Muller"
yarn config set cache-folder "C:\Users\Lincoln-Muller\AppData\Local\Yarn\Cache"
yarn config set prefix "C:\Users\Lincoln-Muller\AppData\Local\Yarn"

连接允许两个目录名指向同一个文件系统结构。这意味着有两种方法来寻址同一个目录。它们的内容不能分开,因为它们是同一个目录。

92vpleto

92vpleto2#

问题是您的目录名中有一个空格,并且没有正确地对其进行转义。

C:\Users\Lincoln Muller

这看起来像是您正在尝试将参数Muller传递给程序C:\Users\Lincoln
我建议只使用不包含空格或转义[空格字符]的文件夹。
https://www.howtogeek.com/694949/how-to-escape-spaces-in-file-paths-on-the-windows-command-line/
在Windows上转义空格的三种方法在Windows上转义文件路径有三种不同的方法:
将路径(或部分路径)括在双引号(“)中。
在每个空格前添加一个插入符号(^)。(这只在命令提示符/CMD中有效,似乎并不适用于每个命令。)
通过在每个空格前添加一个重音符(′)。(这只在PowerShell中有效,但总是有效。)

相关问题