繁体   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