簡體   English   中英

如何覆蓋項目中的流星核心包?

[英]How to Override Meteor Core Packages in a Project?

對於Meteor項目,我想更改Meteor Core庫文件。

這是可能的,如果是的話,怎么樣?

到目前為止,我已經嘗試將文件復制到我的項目目錄中,希望相應的對象只是從原始文件覆蓋,但問題是依賴函數或變量只在本地定義。

然后我嘗試將它們git clone到項目的packages目錄中,就像使用社區包一樣,但由於克隆命令失敗( fatal: repository ... not found ),並且包也未明確,因此無法正常運行在.meteor / packages文件中調用。

任何想法?

Meteor允許在項目中使用本地包,包括覆蓋現有(社區或核心)包的包。

雖然在本地覆蓋社區包通常只需要將GitHub存儲庫克隆(或提取或添加為子模塊)到/packages文件夾中,但核心包當前存在於主流星meteor/meteor存儲庫的子目錄中,這使得克隆它們變得更加棘手。

覆蓋核心軟件包可能需要您手動將更改作為Meteor或軟件包更新(因為Meteor過去依賴於特定的軟件包版本)。

因此,在采取這樣的步驟之前,請確保您確實需要這樣做

確保您不能使用本地文件或您自己的本地軟件包進行更改(例如,通過包裝或替換功能或對其進行修補)。

我使用了一些方法來覆蓋核心包。

克隆整個存儲庫並鏈接目錄

如果要將更改貢獻給項目,這非常有用。 您應該分叉存儲庫並克隆自己的fork。

  1. 克隆流星存儲庫:

    \n git clone https://github.com/meteor/meteor.git\n

    要么

    git clone git@github.com:<username>/meteor.git如果你分叉它

  2. 鏈接包目錄(在項目的packages目錄中)
    \n ln -s ../../(...)/meteor/packages/\n
    當然,您可以簽出所需的分支/提交並將它們復制到本地packages目錄。

靜態下載包目錄

有一個巧妙的技巧,允許您使用svn從GitHub下載給定的目錄。

這是通過發出:

svn export https://github.com/meteor/meteor/[trunk|branches/]/packages/

例如:

devel分支克隆ddp-client

svn export https://github.com/meteor/meteor/branches/devel/packages/ddp-client

或從master分支:

svn export https://github.com/meteor/meteor/trunk/packages/ddp-client

筆記:

  1. 如前所述,如果更新Meteor,則可能需要手動應用更改。
  2. 如果您還沒有忘記將軟件包添加到項目中( meteor add <package> )。
  3. Meteor預計會在某個時刻切換到NPM(可能在Meteor v1.5中),因此請確保僅在流星自己的包裝系統中使用此答案中指定的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM