【问题标题】:NPM package url as dependency in mercurial(bitbucket)NPM 包 url 作为 mercurial(bitbucket) 中的依赖项
【发布时间】:2013-08-15 01:19:54
【问题描述】:

这个话题我找了很久,目前所有的解决方案和示例都在git中工作,但没有Mercurial的直接解决方案。

取自类似链接的工作示例。

"private": true
to your package.json

Then to reference private npm module in package.json

{
    "name": "myapp",
    "dependencies": {
        "private-repo": "git+ssh://git@github.com:myaccount/myprivate.git#v1.0.0",
    }
}

正如我从官方 npm 页面中看到的,这一切都只适用于 git https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

那么如何在 Mercurial 中做同样的事情,或者目前似乎只有 Git 才有可能?

【问题讨论】:

  • 您的问题中没有实际问题。
  • 是的,我的错误添加到最后一行

标签: git mercurial package npm


【解决方案1】:

如果您正在使用Bitbucket 来托管您项目的 Mercurial 存储库,它确实提供了将项目快照下载为 tar.gz 文件的链接。这些 URLs are actually usablepackage.json 依赖项中。

例如,我的pagedown 项目的download page 有一个指向此URL 的链接,用于获取最新default 分支更改的gzip 快照:

https://bitbucket.org/ncraike/pagedown/get/default.tar.gz

所以在另一个项目的package.json,我可以指定:

"dependencies": {
    "pagedown": "https://bitbucket.org/ncraike/pagedown/get/default.tar.gz"
}

当我从依赖包中执行 npm install 时,npm 可以很好地处理这个问题,并将其正确安装到 node_modules 子目录中。

这不是 Mercurial 存储库的通用解决方案(我同意如果 npm 也接受 Mercurial URL 会很好),但如果您使用 Bitbucket 或类似网站进行托管,这可能是一个合理的解决方法。

【讨论】:

  • 您似乎可以使用以下语法和版本标签来检索特定版本:bitbucket.org/USERNAME/MODULENAME/get/TAG.tar.gz 您可以在标签选项卡下的下载页面上找到这些 URL。
  • 啊。实际上,是的,可能会首选特定版本,因此您的依赖项是稳定且经过测试的,不会意外更改(例如,每当有人提交默认值时)。
  • 对于私有仓库,我如何在不将其放入 package.json 的情况下提供凭据?
  • @kierans 我不知道这是否可行,但我的第一反应是尝试将[auth] 部分添加到~/.hgrc 详细信息:stackoverflow.com/questions/2584407/…
【解决方案2】:

NPM 支持 git 但不支持 Mercurial。你可以使用 Kiln 之类的东西来托管你的存储库,它允许以 Mercurial 或 git 的方式访问,但如果失败,你将不得不克隆到本地并指向 NPM。

【讨论】:

    猜你喜欢
    • 2016-11-10
    • 1970-01-01
    • 2015-11-21
    • 2022-11-25
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2016-02-18
    相关资源
    最近更新 更多