我找到并修复了第三方Meteor软件包中的错误。在测试修复时,我遇到了一些意想不到的困难,我将在下面描述。
在Meteor中测试修补的第三方软件包的推荐方法是什么?
在Mac上,命令meteor add username:package-name
将文件从Atmospherejs.com复制到~/.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个不必要的空白字符。现在Meteor抱怨它无法读取整个文件。所以我在文件的末尾添加了太多的空格,而Meteor很乐意剪掉它不想要的字符。
我现在能够检查我的修复是否有效,并在其GitHub页面上发布了包的问题,以便原始开发人员可以发布修复。
此特定包作为不同包的一部分包含在内,因此它是作为meteor add otheruser:different-package-name
命令的结果安装的。
覆盖默认软件包位置中存储的文件的可接受方法是什么,以便可以使用修补版本,而Meteor对脚本文件中的确切字节数不会有任何疑问?
答案 0 :(得分:2)
您花了太多时间来阻止流星再次更新原始版本。最简单的方法是
packages
项目meteor
meteor remove <package-name>
默认情况下,meteor将首先查看外部包的packages
文件夹,如果找不到,则会在Atmosphere
上查找。
到那时,只需通过回购请求的pull请求通知原始开发人员。