对于Meteor项目,我想更改Meteor Core库文件。
这可能吗?如果可以,怎么做?
到目前为止,我已尝试将文件复制到我的项目目录中,希望相应的对象只是从原始文件中覆盖,但问题是依赖函数或变量只在本地定义。
然后我尝试git clone
将它们放入项目的packages
目录中,就像使用社区包一样,但由于克隆命令失败,因此无法运行( fatal: repository ... not found
)并且未在.meteor / packages文件中显式调用包。
有什么想法吗?
答案 0 :(得分:3)
Meteor允许在项目中包含本地包,包括覆盖现有(社区或核心)包的包。
虽然在本地覆盖社区包通常只需要将GitHub存储库克隆(或提取或添加为子模块)到/packages
文件夹中,但核心包当前存在于主meteor/meteor
存储库的子目录中,这使得克隆它们更加棘手。
覆盖核心软件包可能需要您手动将更改作为Meteor或软件包更新(因为Meteor过去依赖于特定的软件包版本)。
因此,在采取此步骤之前,确保您确实需要这样做。
确保您无法使用本地文件或您自己的本地软件包进行更改(例如,通过包装或替换函数或对其进行修补)。
我使用了一些方法来覆盖核心包。
如果您想要对项目进行更改,这非常有用。您应该分叉存储库并克隆自己的fork。
克隆meteor存储库:
git clone https://github.com/meteor/meteor.git
或
git clone git@github.com:<username>/meteor.git
如果你分叉
packages
目录中)
ln -s ../../(...)/meteor/packages/当然,您可以签出所需的分支/提交并将它们复制到本地
packages
目录。有一个巧妙的技巧,允许您使用svn
从GitHub下载给定目录。
这是通过发出:
获得的svn export https://github.com/meteor/meteor/[trunk|branches/]/packages/
例如:
从ddp-client
分支克隆devel
:
svn export https://github.com/meteor/meteor/branches/devel/packages/ddp-client
或来自master
分支:
svn export https://github.com/meteor/meteor/trunk/packages/ddp-client
注意:
meteor add <package>
),请不要忘记。