如何为 Meteor 编辑第三方包
How to edit a third-party package for Meteor
我发现并修复了第三方 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 很乐意 trim 去掉它不需要的字符。
我现在可以检查我的修复是否有效,post 包的 GitHub 页面上的问题,以便原始开发人员可以发布修复。
这个特定的包是作为另一个包的一部分包含的,所以它是作为 meteor add otheruser:different-package-name
命令的结果安装的。
覆盖存储在默认包位置的文件的公认方法是什么,以便可以使用补丁版本,而不用 Meteor 对脚本文件中的确切字节数挑剔?
您花了太多时间来阻止 meteor 再次将您的更改更新为原始版本。最简单的方法是
- 分叉原始项目
- 将您的分支存储库拉入
meteor
项目meteor
中的文件夹 packages
- 在分叉上更改您想要的任何内容
- 将其包含到流星包文件 (.meteor/packages)。记住通过触发
meteor remove <package-name>
来删除旧包
- 运行 项目
默认情况下,meteor 会先在packages
文件夹中查找外部包,如果找不到,则会在Atmosphere
.
中查找
到那时,只需通过您的存储库中的拉取请求通知原始开发人员即可。
我发现并修复了第三方 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 很乐意 trim 去掉它不需要的字符。
我现在可以检查我的修复是否有效,post 包的 GitHub 页面上的问题,以便原始开发人员可以发布修复。
这个特定的包是作为另一个包的一部分包含的,所以它是作为 meteor add otheruser:different-package-name
命令的结果安装的。
覆盖存储在默认包位置的文件的公认方法是什么,以便可以使用补丁版本,而不用 Meteor 对脚本文件中的确切字节数挑剔?
您花了太多时间来阻止 meteor 再次将您的更改更新为原始版本。最简单的方法是
- 分叉原始项目
- 将您的分支存储库拉入
meteor
项目meteor
中的文件夹packages
- 在分叉上更改您想要的任何内容
- 将其包含到流星包文件 (.meteor/packages)。记住通过触发
meteor remove <package-name>
来删除旧包
- 运行 项目
默认情况下,meteor 会先在packages
文件夹中查找外部包,如果找不到,则会在Atmosphere
.
到那时,只需通过您的存储库中的拉取请求通知原始开发人员即可。