【发布时间】:2013-10-22 01:08:20
【问题描述】:
在 package.js 中,我像这样依赖 fluent-ffmpeg:
Npm.depends({
"fluent-ffmpeg": "1.5.2",
});
现在我需要该库的最新主版本,因为其中进行了错误修复,但尚未将其制成标签。我该如何描述这种依赖关系?似乎 Npm.depends 只需要版本号,而不是 git 哈希或链接或其他任何东西。
【问题讨论】:
在 package.js 中,我像这样依赖 fluent-ffmpeg:
Npm.depends({
"fluent-ffmpeg": "1.5.2",
});
现在我需要该库的最新主版本,因为其中进行了错误修复,但尚未将其制成标签。我该如何描述这种依赖关系?似乎 Npm.depends 只需要版本号,而不是 git 哈希或链接或其他任何东西。
【问题讨论】:
看来您可以将依赖项指向 github tarball。据我所知,它没有记录,但the sources for Npm.depends 提到了_isGitHubTarball,它检查版本是否为/^https:\/\/github.com\/.*\/tarball\/[0-9a-f]{40}/ 格式。
这意味着您可以浏览到您需要的代码版本(例如 this commit 在我的例子中),并使用“下载 ZIP”链接。我们又遇到了一个问题; github 已停止使用 tarball 并改用 zip 文件。因此,您获得的链接与正则表达式不匹配,而是采用以下形式:
https://github.com/schaermu/node-fluent-ffmpeg/archive/fe2e162e3ac63bfac316a21fda8c0936556eef37.zip
您可以手动将其重写为:
https://github.com/schaermu/node-fluent-ffmpeg/tarball/fe2e162e3ac63bfac316a21fda8c0936556eef37
(存档> tarball,并删除扩展名)。
现在你可以在你的 package.js Npm.depends 中使用它:
Npm.depends({
"fluent-ffmpeg": "https://github.com/schaermu/node-fluent-ffmpeg/tarball/fe2e162e3ac63bfac316a21fda8c0936556eef37",
});
【讨论】: