Docs
circleci.com
Start Building for Free

Deploy to NPM registry

1 month ago1 min read
Cloud
Server v4.x
Server v3.x
Server v2.x

Setting up CircleCI to publish packages to the npm registry makes it easy for project collaborators to release new package versions in a consistent and predictable way.

  1. Obtain the npm authToken for the account that you wish to use to publish the package. You can do that by logging in to npm (npm login). This will save the authToken to the ~/.npmrc file. Look for the following line:

    //registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000

    In this case, the authToken is 00000000-0000-0000-0000-000000000000.

  2. Go to your project settings, and set the NPM_TOKEN variable to the obtained authToken.

  3. Configure CircleCI to add the authToken to ~/.npmrc, run npm publish and only for versioned tags:

    version: 2
    
    jobs:
        publish:
        docker:
            - image: <docker-image-name-tag>
                auth:
                    username: mydockerhub-user
                    password: $DOCKERHUB_PASSWORD  # context / project UI env-var reference
        steps:
            - checkout
            - run:
                name: Publish to NPM
                command: |
                npm set //registry.npmjs.org/:_authToken=$NPM_TOKEN
                npm publish
    
    workflows:
        version: 2
        tagged-build:
        jobs:
            - publish:
                filters:
                tags:
                    only: /v[0-9]+(\.[0-9]+)*/
  4. When you want to publish a new version to npm, run npm version to create a new version:

    npm version 10.0.1

    This will update the package.json file and creates a tagged Git commit. Next, push the commit with tags:

    git push --follow-tags
  5. If tests passed, CircleCI will publish the package to npm automatically.


Help make this document better

This guide, as well as the rest of our docs, are open source and available on GitHub. We welcome your contributions.

Need support?

Our support engineers are available to help with service issues, billing, or account related questions, and can help troubleshoot build configurations. Contact our support engineers by opening a ticket.

You can also visit our support site to find support articles, community forums, and training resources.