yarn 全局安装命令报错文件名、目录名或卷标语法不正确

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yarn 全局安装命令报错文件名、目录名或卷标语法不正确相关的知识,希望对你有一定的参考价值。

参考技术A

前情摘要:
1、用 npm 装的 yarn
2、自定义了 npm 的全局安装位置和缓存
3、用yarn安装taro脚手架的时候,运行项目报错【文件名、目录名或卷标语法不正确】

原因:可能因为 yarn的命令目录bin 与其 全局安装位置 不在一个文件夹下导致

解决方案:
1、查看yarn的命令目录

2、查看yarn的全局安装目录

3、结果发现两者位置并不一致,所以我们要把yarn的全局安装目录放在和bin的位置一个目录

4、别忘了把yarn的bin目录添加到 系统环境变量path
5、然后比较保险的做法是:重启电脑,重装taro,重装项目依赖,就ok啦~

`gsutil cp` 命令抛出“OSError:文件名、目录名或卷标语法不正确”

【中文标题】`gsutil cp` 命令抛出“OSError:文件名、目录名或卷标语法不正确”【英文标题】:`gsutil cp` command throwing "OSError: The filename, directory name, or volume label syntax is incorrect" 【发布时间】:2020-10-13 22:57:22 【问题描述】:

我已按照 Google Cloud 说明执行 gsutil install guide,并且已将 updated GCloud components 更新到最新版本。我刚刚安装并配置了 GCloud 以使用我的凭据和项目。首先,我使用以下命令从我的 Firestore 中导出我需要的单个集合:

gcloud firestore export gs://my-project-id.appspot.com --collection-ids=theCollectionINeed

现在我看到这个导出作为文件夹在我的 Firebase 控制台 Storage 部分中。作为项目所有者,我想将此导出到我的本地系统。为此,我认为我需要使用 gsutil 才能复制它。阅读download the object from your bucket的说明,我尝试使用以下命令,但出现此错误:

$ gsutil cp -r gs://m-project-id.appspot.com/2020-05-22T02:01:06_86154 .
Copying gs://lucky-level-dev-6ac34.appspot.com/2020-05-22T02:01:06_86154/2020-05-22T02:01:06_86154.overall_export_metadata...
OSError: The filename, directory name, or volume label syntax is incorrect.

我在 Windows 10 环境中使用 cmd 运行此命令。 我希望能够将此文件夹从云端下载到我的本地驱动器。

更新

之后,我尝试按照建议更改存储桶文件夹(对象前缀):

gsutil mv gs://my-project-id.appspot.com/2020-05-22T02:01:06_86154 gs://my-project-id.appspot.com/2020-06-23_someFolder

但现在再次尝试会引发一个新错误:

gsutil cp -r gs://my-project-id.appspot.com/2020-05-22_someFolder .
Copying gs://my-project-id.appspot.com/2020-05-22_someFolder/2020-05-22T02:01:06_86154.overall_export_metadata...
OSError: Invalid argument.9.0 B]

当然我也需要更改文件名?

【问题讨论】:

我怀疑问题是 GCS 对象前缀包含冒号,这些可能会导致 Windows 出现问题。我没有窗户。请尝试gsutil mv gs://m-project-id.appspot.com/2020-05-22T02:01:06_86154 gs://m-project-id.appspot.com/X 重命名对象,然后再尝试gsutil cp -r gs://m-project-id.appspot.com/X . @DazWilkin 感谢您的建议。现在我已经超越了那个错误;可悲的是,现在我得到了以下信息:OSError: Invalid argument.9.0 B] 我会更新我的问题。有什么想法吗? @DazWilkin 我还必须重命名名称中还包含冒号的内部文件。再次感谢! 您可能希望向 Google 提交错误。该命令应该在受支持的操作系统上运行,并且显然不适用于 Windows。 issuetracker.google.com 【参考方案1】:

在执行 cp -r gs:/bucket_name/folder .时,Gsutil 会尝试在当前位置创建一个名称为“bucket_name”的文件夹,Windows doesn't allow 的文件夹名称中包含一些特殊字符,包括“:”

您可以使用@DazWilkin 建议的gsutil mv gs://m-project-id.appspot.com/2020-05-22T02:01:06_86154 gs://m-project-id.appspot.com/new_folder_name 命令重命名存储桶文件夹(对象前缀),然后使用新文件夹名称重试。

还要检查目录结构中的所有文件名是否不包含“:”字符或任何其他 special one。

【讨论】:

感谢您的建议。这似乎确实是问题所在,听起来很合乎逻辑,但现在我得到了以下信息:OSError: Invalid argument.9.0 B] 有什么想法吗? 我还不得不重命名也有冒号的内部文件,问题就解决了。如果有人不阅读 cmets,请补充您的答案以获得完整的答案。谢谢! 好的,我很高兴这已经解决了!我已经更新了我的答案。【参考方案2】:

(问题作者发布的解决方案将其放在答案部分)

我所要做的就是重命名名称中也包含冒号的内部文件。重命名解决了这个问题!

【讨论】:

真的认为这本身就回答了这个问题吗?不要只是过度温和...... @Metafaniel:它是(部分)答案材料,所以它需要进入答案空间。如果您认为它是微不足道的,我很乐意将其删除,或者如果答案不太可能对未来的读者有用,则将问题关闭为 Typo/Unrepro,但我认为该材料不属于该问题。或者,您可以自己发布此答案(减去归属声明)作为自我答案,我可以删除 CW 副本。 最后,如果您想获得第二意见,可以在 Meta Stack Overflow 上提问。【参考方案3】:

如果是gcloud firestore export,可以通过指定目录来避免该问题:

# BAD this will auto generate a directory windows doesnt like
gcloud firestore export gs://my-bucket

# GOOD specify a directory
gcloud firestore export gs://my-bucket/firestore-backup

# copy as usual
gsutil -m cp -r "gs://my-bucket/firestore-backup" .

【讨论】:

以上是关于yarn 全局安装命令报错文件名、目录名或卷标语法不正确的主要内容,如果未能解决你的问题,请参考以下文章

yarn 创建项目16/16文件名目录名或卷标语法不正确。

yarn 创建项目16/16文件名目录名或卷标语法不正确。

创建UmiJS项目时报错--文件名目录名或卷标语法不正确

创建UmiJS项目时报错--文件名目录名或卷标语法不正确

命令提示符提示文件名,目录或卷标语法不正确怎么办

Java 上传 文件 报错:文件名、目录名或卷标语法不正确