2015-03-31 86 views
6

這是最奇怪的問題,只發生在一個npm模塊內的一個iOS框架上(我注意到)。npm發佈模塊包含iOS框架。當該模塊的npm安裝時,iOS框架已損壞

的框架時,點擊(前NPM發佈)我看到:

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

我發表這個模塊的私人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後,它看起來像丟失的文件是符號鏈接。有沒有其他人看到過這種行爲?在npm過程中如何避免符號鏈接丟失?

+0

喜ideluca,我最近遇到了問題。我在搜索堆棧溢出時發現了你的問題,並想知道你是否找到了答案。 – wesshi 2016-08-15 00:04:37

+0

有關GitHub上的npm問題跟蹤器的建議解決方法(但目前沒有解決方案)的此問題的討論:https://github.com/npm/npm/issues/7825 – Dalbergia 2016-09-28 17:05:48

+0

另請參閱Cordova問題跟蹤器: https://issues.apache.org/jira/browse/CB-6092 – Dalbergia 2016-09-28 17:08:19

回答

0

缺失的文件是符號鏈接,不幸的是,npm不支持符號鏈接。作爲一種解決方法,您可以將鏈接替換爲其目標(並刪除目標以防止重複)。

E.g.與結構框架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