【发布时间】:2013-04-02 13:37:19
【问题描述】:
我想在同一台服务器上运行两个不同的 Meteor 应用程序(在不同的端口上),但我想更改 Meteor 核心包之一中的某些内容,我希望一个应用程序使用原始包,另一个应用程序使用修改后的包一。我该怎么办?
【问题讨论】:
标签: meteor
我想在同一台服务器上运行两个不同的 Meteor 应用程序(在不同的端口上),但我想更改 Meteor 核心包之一中的某些内容,我希望一个应用程序使用原始包,另一个应用程序使用修改后的包一。我该怎么办?
【问题讨论】:
标签: meteor
一个更直接的答案,基于here 的回答:
【讨论】:
你可以在 github repo 获取包的文件:https://github.com/meteor/meteor/tree/master/packages
获取除package.js 文件之外的您想要的文件并将它们添加到您的项目中。值得注意的是,有时您需要确保它们的加载顺序,因此您可能需要修改文件名,查看加载顺序请查看package.js。默认情况下,meteor 按名称订购文件,但包不一定使用它。
如果您只是修改包并使用meteorite 将其添加回来,则可以避免重命名文件:https://github.com/oortcloud/meteorite
关于如何制作smart.json 的完整说明:https://atmosphere.meteor.com/wtf/package。如果有什么好的,请考虑将其添加到atmosphere!
【讨论】:
accounts-base 包,更准确地说是一个文件:accounts_common.js。第 38 行有 users 集合名称,在我将其更改为 myusers 并将更改后的文件放置到 ~/myapp/packages/accounts-base/accounts_common.js 后,我在 Firebug 中收到以下错误:There is already a collection named 'myusers'。我认为这是因为与修改后的文件一起运行的原始文件发生冲突?
accounts-base吗?如果冲突,您在某处有两个 new Collection("myusers") 定义
accounts-base。正如你告诉我的那样,我只是将更改后的文件放在一个空目录 (~/myapp/packages/accounts-base) 中。
/server/ 和客户端在/client。看起来客户端和服务器端代码冲突
我的包在其根目录下的用户文件夹中,作为一个名为 .meteor 的隐藏文件夹。
也许你可以在那里检查一下?在 Mac 上,它会位于:
~/.meteor/packages/你的包名
您现在还必须进入 os.json 中的文件,并更改您更改的文件的“长度”变量以匹配新的字节文件大小。否则它可能无法编译,但请先尝试编译,看看是否是您更改了某些包代码的问题。
【讨论】: