这是最奇怪的问题,仅在npm模块内的一个iOS框架上(特别是(我注意到))发生。

单击框架时(在发布npm之前),我看到:

frameworkname.framework
|
- Headers (dir)
- frameworkname
- Versions (dir)
    |
    -A (dir)
    -Current (dir)

我将此模块发布到了私有(private)的npm服务器。当我安装npm模块时,框架已损坏。我懂了:
frameworkname.framework
|
- Headers (dir) MISSING
- frameworkname MISSING
- Versions (dir)
    |
    -A (dir)
    -Current (dir) MISSING

阅读http://www.raywenderlich.com/65964/create-a-framework-for-ios之后,看起来丢失的文件是符号链接(symbolic link)。以前有没有其他人看到过这种行为?如何在npm过程中防止符号链接(symbolic link)丢失?

最佳答案

丢失的文件是符号链接(symbolic link),不幸的是,npm不支持符号链接(symbolic link)。解决方法是,可以将链接替换为其目标(并删除目标以防止重复)。

例如。对于具有以下结构的框架FFF:

./FFF -> Versions/Current/FFF
./Headers -> Versions/Current/Headers
./Versions
./Versions/A
./Versions/A/FFF
./Versions/A/Headers
./Versions/Current -> A

您可以从框架目录中运行以下内容(以bash格式):

framework=FFF && rm $framework Headers && mv Versions/A/{$framework,Headers} . && rm -rf Versions

将结构更改为:

./FFF
./Headers

10-06 13:24