<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: trailrun80</title>
    <description>The latest articles on DEV Community by trailrun80 (@trailrun80).</description>
    <link>https://dev.to/trailrun80</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F16577%2F06609106-cba7-4d97-8582-8f2df00612c0.jpg</url>
      <title>DEV Community: trailrun80</title>
      <link>https://dev.to/trailrun80</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trailrun80"/>
    <language>en</language>
    <item>
      <title>Create a library with Angular and publish it to GitHub Package Registry</title>
      <dc:creator>trailrun80</dc:creator>
      <pubDate>Fri, 08 Nov 2019 16:15:28 +0000</pubDate>
      <link>https://dev.to/trailrun80/create-a-library-with-angular-and-publish-it-to-github-package-registry-1pch</link>
      <guid>https://dev.to/trailrun80/create-a-library-with-angular-and-publish-it-to-github-package-registry-1pch</guid>
      <description>&lt;h2&gt;
  
  
  How to set up Angular library project, pack it up into an installable package, publish it to GitHub Package Registry and use it in another project
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This post will only feature crucial steps that took me some time to get right. I will try to be as concise as possible but still provide enough details to make things easier for you.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In case you didn't know some time ago GitHub announced their own Package Registry which at the time of writing this article is in beta. There are a couple of reasons why I think GitHub Package Registry (GPR) is great news for developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;when you publish to GPR you publish to a known/selected GitHub repository; that way your packages reside next to where their code/implementation is;&lt;/li&gt;
&lt;li&gt;you can publish different packages to the same repository, meaning it doesn't have to be one repo = one package (you just have to set it up correctly and I will show you how to do it later on);&lt;/li&gt;
&lt;li&gt;you can reuse your existing team/organization structure that you have on GitHub not having to replicate everything on NPM (or any another registry, for that matter);&lt;/li&gt;
&lt;li&gt;personally I never liked the NPM experience be it either their search or the administration side of it and would much rather have everything on GitHub,&lt;/li&gt;
&lt;li&gt;using GitHub to host both code and packages just means one (or more) less service you have to configure and learn to use,&lt;/li&gt;
&lt;li&gt;the familiar GitHub experience,&lt;/li&gt;
&lt;li&gt;the GPR is currently in Beta and you can use it free of charge even for private packages; at the moment of writing I don't know of any other online package registry where one can host private packages free of charge,&lt;/li&gt;
&lt;li&gt;you can also use GitHub's registry for other types of packages for instance Gem (Ruby), NuGet (.NET), Maven (Java) and others.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Learn more about &lt;a href="https://help.github.com/en/github/managing-packages-with-github-package-registry/about-github-package-registry"&gt;GitHub Package Registry&lt;/a&gt; and if you want to sign up for  Beta please &lt;a href="https://github.com/features/package-registry"&gt;use this link&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Lets start&lt;/em&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. Create an empty Angular workspace
&lt;/h2&gt;

&lt;p&gt;We will be using Angular CLI for this. There's been changes in the latest versions of Angular which make this very easy.&lt;/p&gt;

&lt;p&gt;Create an empty Angular workspace that can host multiple projects. This will set everything up with correct configuration in &lt;code&gt;package.json&lt;/code&gt; and &lt;code&gt;angular.json.&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ng new LibraryWorkspace --createApplication=false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Create a new Angular library project within the workspace
&lt;/h2&gt;

&lt;p&gt;This will create &lt;code&gt;/projects&lt;/code&gt; folder under the workspace root with a library subfolder inside. It will also create a new library module and a service and component to start with.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ng g library ComponentsLib --prefix cmpts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. (optional) Build (and pack your library)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 3 is only required here as a precaution. Building the library at this point makes sure our Angular workspace and library project were set up correctly by the CLI. You will be rebuilding the library again after you've completed the steps 4-7.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, the previous CLI command will also create files required for the project to become a package at some point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;package.json,&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ng-package.json,&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;and an important file &lt;code&gt;src/public-api.ts&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point we have everything we need to run a build for this project.&lt;/p&gt;

&lt;p&gt;The CLI is smart enough to build the default library first if you also happen to have other projects within the workspace. It will also build for production by default so you don't have to use the &lt;code&gt;--prod&lt;/code&gt; switch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ng build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To pack the library you will switch to the &lt;code&gt;dist&lt;/code&gt; folder and use &lt;code&gt;npm pack&lt;/code&gt;. You can do that now OR &lt;strong&gt;do it later after you've set up the GitHub Package Registry settings (steps 4-7).&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ..\..\dist\ComponentsLib\
npm pack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;You could of course make these lines part of a custom script in package.json but I won't go into details on that.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Register with GitHub Package Registry
&lt;/h2&gt;

&lt;p&gt;This is very straightforward, just sign up for the beta at&lt;br&gt;
&lt;a href="https://github.com/features/package-registry"&gt;https://github.com/features/package-registry&lt;/a&gt; and you should be fine.&lt;/p&gt;
&lt;h2&gt;
  
  
  5. Authenticate to GitHub using personal token and store it in your personal .npmrc file
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;When I did this for the first time I had issues both with &lt;code&gt;.npmrc&lt;/code&gt; file not containing what I wanted and with logging into GitHub from cmdline in the first place. Please, take your time and give it a couple of retries if it doesn't work the first time.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;First, you need a token from GitHub and you can get it by following the steps outlined here &lt;a href="https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line"&gt;https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you have the token bring up your cmdline/powershell/whatever and do this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm login --scope=@OWNER --registry=https://npm.pkg.github.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;@OWNER&lt;/code&gt; is the package scope and you should use either your GitHub account name or your GitHub organization name here (prefixed by the @ sign).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Follow the steps presented at cmdline and login to GitHub with your token.&lt;/p&gt;

&lt;p&gt;Succesful login will create .npmrc file in your machine-wide personal folder (on Windows, this will be C:\Users\accountname\.npmrc).&lt;/p&gt;

&lt;p&gt;If you open this file you should find the following lines in it. If the two lines are not present just add them yourself.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN_HERE&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;@OWNER:registry=&amp;lt;https://npm.pkg.github.com/&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Again, @OWNER will be replaced with your GitHub username or organization name (prefixed by the @ sign).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  6. Modify your library files
&lt;/h2&gt;

&lt;p&gt;Certain files in your library code have to be modified with GitHub specific NPM settings/configuration.&lt;/p&gt;

&lt;p&gt;Modify your &lt;code&gt;./projects/ComponentsLib/package.json&lt;/code&gt; like this &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;(that is the &lt;code&gt;package.json&lt;/code&gt; within the library folder in your Angular workspace NOT the one at the root of your workspace)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;change&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ComponentsLib"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@owner/ComponentsLib"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;(@owner is the same as in step 5 but it has to be all lowercase here!)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and add the following lines&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nl"&gt;"repository"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git://github.com/OWNER/REPOSITORY.git"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you're finished your &lt;code&gt;package.json&lt;/code&gt; should look something like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@owner/ComponentsLib"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0.0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"peerDependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@angular/common"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^8.2.13"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"@angular/core"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^8.2.13"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"repository"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git://github.com/OWNER/REPOSITORY.git"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. Create &lt;code&gt;.npmrc&lt;/code&gt; file in your library folder
&lt;/h2&gt;

&lt;p&gt;This file is needed by the &lt;code&gt;npm&lt;/code&gt; to discover your GitHub registry and for &lt;code&gt;npm&lt;/code&gt; to know where to publish your package when you run &lt;code&gt;npm publish&lt;/code&gt; later on. You would also check this file into source control.&lt;/p&gt;

&lt;p&gt;Create a new &lt;code&gt;.npmrc&lt;/code&gt; file alongside &lt;code&gt;package.json&lt;/code&gt; and add this line to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;registry=https://npm.pkg.github.com/owner&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;If you plan to have packages that belong to multiple developers or different organizations within the same Angular project you can support multiple scopes by adding the registries in the following format in &lt;code&gt;.npmrc&lt;/code&gt;:&lt;/p&gt;


&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@owner:registry=https://npm.pkg.github.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  8. Build and pack you library
&lt;/h2&gt;

&lt;p&gt;With all those files changed you can now build the library and produce a package for it&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ng build
cd ..\..\dist\ComponentsLib\
npm pack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should result in a tarball being created in your dist folder&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;owner-componentslib-0.0.1.tgz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9. Publish the library package to GitHub
&lt;/h2&gt;

&lt;p&gt;You should now be able to publish the package to GitHub repository configured in &lt;code&gt;package.json&lt;/code&gt; and &lt;code&gt;.npmrc&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;code&gt;npm&lt;/code&gt; requires you are still logged in with GitHub for this to work.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm publish
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. Use the published package in another app
&lt;/h2&gt;

&lt;p&gt;Go to your GitHub repository and click on the packages link (should be next to commits and branches tabs) and it will take you to a list of published packages within that repo.&lt;/p&gt;

&lt;p&gt;It will also be accessible by URL&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/owner/repository/packages
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clicking on a package will give you the instructions for installing it, either via &lt;code&gt;npm i&lt;/code&gt; or adding it to &lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Now, to make the installation work the destination app will also need a &lt;code&gt;.npmrc&lt;/code&gt; file so it can find your GitHub registry (unless you have registered it in your personal &lt;code&gt;.npmrc&lt;/code&gt; file).&lt;/p&gt;

&lt;p&gt;At the root of your app (the app where you want to install your library package) create &lt;code&gt;.npmrc&lt;/code&gt; file with the following contents:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;registry=https://npm.pkg.github.com/owner&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, you can bring in the library&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @owner/componentslib
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You would then import the &lt;code&gt;ComponentsLibModule&lt;/code&gt; to one of your Angular modules in your destination app (be it the root &lt;code&gt;app.module&lt;/code&gt; or any other module).&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Publishing new versions of the library
&lt;/h2&gt;

&lt;p&gt;When you modify your library and want to update the package with a newer version you will have to update the version (semver) number for it.&lt;/p&gt;

&lt;p&gt;You can simply use &lt;code&gt;npm version&lt;/code&gt; command for that and it will automatically advance your version number.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm version [patch | minor | major | ...]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://docs.npmjs.com/cli/version"&gt;The npm version command docs&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You will then want to rerun the build, pack &amp;amp; publish step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finish
&lt;/h2&gt;

&lt;p&gt;Hopefully this post will help others to set up GitHub as their package registry and contribute to module/component reuse either within private or public teams.&lt;/p&gt;

&lt;p&gt;Should you have any questions or comments feel free to post them below.&lt;/p&gt;

&lt;p&gt;Also, here is a list of links that helped me while I struggled with setting this up for the first time:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5"&gt;The excellent Creating a Library series by Todd Palmer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://help.github.com/en/github/managing-packages-with-github-package-registry/about-github-package-registry"&gt;About GitHub Package Registry&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://help.github.com/en/github/managing-packages-with-github-package-registry/configuring-npm-for-use-with-github-package-registry"&gt;Configuring NPM for use with GitHub Package Registry by GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line"&gt;Creating a personal access token for the command line&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.npmjs.com/configuring-your-registry-settings-as-an-npm-enterprise-user"&gt;Configuring your registry settings as an npm Enterprise user&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HTH&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Story photo by jesse ramirez on Unsplash&lt;/em&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>typescript</category>
      <category>github</category>
      <category>package</category>
    </item>
  </channel>
</rss>
