ZL
About Articles Contact
Published on Mar 27, 2019
Filed under:
#npm

The best time to npm init

When should you npm init?

Most developers run npm init right after creating and navigating into a new project.

It makes sense to npm init at the start of the project because we use npm to download dependencies. Once we npm init, we can begin downloading (and saving) our dependencies.

For most projects, this workflow works.

But if you’re creating an open source project, the best time to npm init is slightly later. If you npm init right after creating and navigating into the project, you’ll miss out a few things.

The best time to npm init

The best time to npm init (for an open source project) is after you added a Git remote to your project. In other words, you should only npm init after you have completed the following commands:

  1. git init
  2. git remote add origin

If you npm init after you have added a Git remote, npm will generate three extra things in your package.json files. They are:

  1. A repository property with a link to your remote repo
  2. A bugs property with a link to the issues page.
  3. A homepage property that links to the readme.md file.
package.json that shows a 'repository' property, a 'bugs' property and a 'homepage' property

These three properties will be displayed as metadata on the right side of the project’s npm page.

Metadata showing up on npm page.

These metadata are links. They let people move to your project’s Github page easily from the npm page. You’ll want these links for better discoverability.

The second best time to npm init

The second best time to npm init is now. If you run npm init now, it will generate the three properties I mentioned above.

Before you run npm init, make sure you rename your original package.json file to something else. This way, you can copy-paste dependencies and other changes you’ve made from the original package.json file to the newly generated one.

Wrapping up

The best time to npm init is after you’ve added a Git remote to your project. The second best time? Anytime!

Previous Stages of learning Next How to add Flexbox fallback to CSS Grid

Join My Newsletter

I share what I’m learning on this newsletter: code, building businesses, and living well.

Sometimes I write about technical deep-dives, product updates, musings on how to live, and sometimes my struggles and how I’m breaking through.

Regardless of the type of content, I do my best to send you an update every week.

If you’re into making things and growing as a person, you’ll probably feel at home here.

“

Zell is one of those rare people who commands tremendous knowledge and experience but remains humble and helpful. They want you to know what they know, not just be impressed by it.

In other words, Zell is a natural teacher. You’re lucky to have him because he feels lucky to be able to help you in your journey.

Heydon Pickering
Heydon Pickering — Web & Accessibility Extraordinaire
The Footer

General

Home About Contact Testimonials Tools I Use

Projects

Magical Dev School Splendid Labz

Socials

Youtube Instagram Tiktok Github Bluesky X

Follow Along

Email RSS
© 2013 - 2025 Zell Liew / All rights reserved / Terms