这是最奇怪的问题,仅在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