在脚本中引用package.json中的存储库url

时间:2017-12-20 15:53:25

标签: npm package.json npm-scripts

像往常一样,在我的package.json文件中,我定义了我的存储库URL:

{
    "repository": {
        "type": "git",
        "url": "http://my.git.repo"
    }
}

我正在尝试定义一个脚本,该脚本将推送到我的仓库并推送标签。通常这样的事情可以解决问题:

{
    "scripts": {
        "push": "git push origin && git push origin --tags"
    }
}

但是我们处理拉取请求,对我们来说origin是我们的私人分叉。 public通常是公共回购,但不能依赖。我希望我的推送脚本始终推向公共回购:

{
    "scripts": {
        "push": "git push http://my.git.repo && git push http://my.git.repo --tags"
    }
}

但这涉及复制repo url,当人们复制这个种子项目时,他们将忘记更新所有3个地方的url。我想引用已经在package.json

中指定的repo的url

我尝试过这样的事情:

{
    "scripts": {
        "push": "git push $npm_package_repository_url && git push $npm_package_repository_url --tags"
    }
}

基于此网页:https://docs.npmjs.com/misc/scripts#packagejson-vars但不起作用。

非常感谢

1 个答案:

答案 0 :(得分:0)

  

语法$npm_package_repository_url在Mac OS X / Linux(bash)上可以正常工作,但Windows需要%npm_package_repository_url%。您可以尝试使用cross-var启用一种脚本语法(即$npm_package_repository_url)以跨平台工作。

感谢RobC的支持