package.json

name

  • The name must be less than or equal to 214 characters. This includes the scope for scoped packages.

  • The name can't start with a dot or an underscore.

  • New packages must not have uppercase letters in the name.

  • The name ends up being part of a URL, an argument on the command line, and a folder name. Therefore, the name can't contain any non-URL-safe characters.

version

description

keywords

homepage

bugs

{
  "url" : "https://github.com/owner/project/issues",
  "email" : "project@hostname.com"
}

license

author, contributors

files

files > .npmignore > .gitignore

always included files

  • package.json

  • README

  • CHANGES / CHANGELOG /HISTORY

  • LICENSE / LICENCE

  • NOTICE

  • The file in the "main" field

always ignored files

  • .git

  • CVS

  • .svn

  • .hg

  • .lock-wscript

  • .wafpickle-N

  • .*.swp

  • .DS_Store

  • ._*

  • npm-debug.log

  • .npmrc

  • node_modules

  • config.gypi

  • *.orig

  • package-lock.json (use shrinkwrap instead)

main

browser

bin

If you have a single executable, and its name should be the name of the package, then you can just supply it as a string

would be the same as this:

man

Specify either a single file or an array of filenames to put in place for the man program to find

directories

directories.lib

directories.bin

directories.man

directories.doc

directories.example

directories.test

repository

shortcut syntax

scripts

config

dependencies

devDependencies

peerDependencies

bundledDependencies

optionalDependencies

engines

engineStrict

This feature was removed in npm 3.0.0

os

process.platform

cpu

process.arch

preferGlobal

DEPRECATED

private

publishConfig

Last updated

Was this helpful?