2016-02-26 74 views
0

我發現並修正了第三方Meteor軟件包中的錯誤。在測試修復程序時,我遇到了一些意想不到的困難,我在下面描述。如何編輯Meteor的第三方軟件包

在Meteor中測試已修補的第三方軟件包的建議方法是什麼?


在Mac上,從Atmospherejs.com命令meteor add username:package-name將文件複製到該文件夾​​在~/.meteor/packages/username_package-name/。我找到了這個文件夾中的原始文件並對其進行了編輯。

問題很簡單。原來的劇本包括線...

options.userCallback = function (error) { 
    if (error.error ...) {} 

所有我需要做的是把這裏改爲:

options.userCallback = function (error) { 
    if (error && error.error ...) {} 

不過,我現在又增加了9個字符到文件。當Meteor編譯我的應用程序時,會切斷腳本的最後9個字符,並導致運行時錯誤。據推測,Meteor將文件的預期長度存儲在某處。作爲一個黑客,我從文件中刪除了更多9個無關緊要的空白字符。現在流星抱怨說它無法讀取整個文件。所以我在文件末尾添加了太多空白,而流星很樂意修剪它不想要的字符。

我現在能夠檢查我的修復程序是否有效,並在其GitHub頁面上發佈該程序包的問題,​​以便原始開發人員可以發佈修復程序。

此特定軟件包是作爲其他軟件包的一部分包含的,因此它是作爲meteor add otheruser:different-package-name命令的結果安裝的。

什麼是接受的方法來覆蓋存儲在默認包位置的文件,這樣就可以使用補丁版本來代替,而不需要流星獲得關於腳本文件中確切字節數的持久性?

回答

2

你花了太多的時間來防止流星更新你的改變到原來的。最簡單的方法是

  1. 叉原項目
  2. 您的分叉回購拉入文件夾packagesmeteor項目你想在分叉
  3. 任何更改,這包括對流星包文件(。流星/包)。記得觸發meteor remove <package-name>
  4. 運行項目

默認情況下刪除舊的包,流星會看packages文件夾第一的外包裝,如果它不能發現,那麼它會查找上Atmosphere

到那時,只需通過您的回購請求通知原始開發者。

+0

「手動檢索已更改的回購作爲一個包並將其包含在流星包文件中」<<<你能給我更詳細的關於如何「手動檢索」它以及它應該去的地方的詳細信息,以覆蓋正式流星添加版本? –

+0

@JamesNewton更新了答案 –

相關問題