Installing private package from Github Package registry fails with not found/not authorized

后端 未结 3 418
臣服心动
臣服心动 2021-01-04 21:48

I created and published a private Github package. Trying to install it with yarn at first, I face the following issue:

Whether I try with yarn or npm, it cannot find

相关标签:
3条回答
  • 2021-01-04 21:58

    What you need to do is specify where to retrieve EACH package, with something like this in your .npmrc (I don't know the yarn syntax, but it works with yarn when it reads the .npmrc):

    //registry.npmjs.org/:_authToken=<token-npm-read>
    //npm.pkg.github.com/:_authToken=<token-github-package-read>
    @foo:registry=https://npm.pkg.github.com
    @far:registry=https://registry.npmjs.org
    

    And then, Yarn will search @foo/mypackage1 in Github, where @far/mypackage2 will be searched in npmjs. The default registry will be kept for the others, whatever you set it to.

    0 讨论(0)
  • 2021-01-04 22:14

    I found the solution which unfortunately is not well documented anywhere but a mix of different resources - and it's quite simple.

    No matter whether you use npm or yarn, just have the following .npmrc in place (yarn will also include this):

    registry=https://registry.yarnpkg.com/
    
    @GITHUB_USERNAME:registry=https://npm.pkg.github.com
    //npm.pkg.github.com/:_authToken=AUTH_TOKEN
    always-auth=true
    

    Some comments:

    • always-auth is needed, at least when using yarn (haven't tested using npm)
    • Adding the above in the .yarnrc instead doesn't work. Somehow yarn has issues when authentication is needed.
    • Now you can easily install your private packages with yarn add @GITHUB_USERNAME/PACKAGE_NAME or the npm equivalent.
    • Include registry=https://registry.yarnpkg.com/ for yarn or registry=https://registry.npmjs.org/ for npm

    I hope this solution works also in your case. Otherwise let me know what issues you face and I'm happy to share some of the research on this topic and where the solution may hide.

    0 讨论(0)
  • 2021-01-04 22:21

    I am adding an answer here because after a day of trying different variations of the solutions here and elsewhere, I found that my issue was something else.

    My issue was that, while npm is not case sensitive with regards to package names, yarn is when it comes to authentication!

    0 讨论(0)
提交回复
热议问题