Javascript Package - Package.json


Package.json is used by npm to store metadata for projects published as npm modules.


  • serves as documentation for what packages your project depends on.
  • allows you to specify the versions of a package that your project can use using semantic versioning rules.
  • makes the build reproducible

See Reference



  • “name”: all lowercase one word, no spaces dashes and underscores allowed
  • “version” in the form of x.x.x follows semver spec


  • main.js: the entry point when the package is used.
  • description. The description helps people find your package on npm search. If there is no description field in the package.json, npm uses the first line of the or README instead.


  "name": "my_package",
  "description": "",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  "repository": {
    "type": "git",
    "url": ""
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": ""
  "homepage": ""
  "dependencies": {
    "my_dep": "^1.0.0"
  "devDependencies" : {
    "my_test_framework": "^3.1.0"




  • module: define where to find the module file named by the name properties (use when importing to locate the module)
"module": "src/index.js",  
  • browser defines the location of module that are only available inside the browsers.
"browser": {
    "module-a": false,
    "./server/only.js": "./shims/server-only.js"

The import order of precedence is defined in resolve-mainfields for webpack

module.exports = {
  resolve: {
    mainFields: ['browser', 'module', 'main']



yarn init
# optionaly
npm init

Modify Config

npm set "[email protected]"
npm set "ag_dubs"
npm set init.license "MIT"
Your Name <[email protected]> (

Add dependency

To add dependency, use the save and save dev flag of npm install. See Javascript Package.

  • For dependencies
npm install <package_name> --save
  • For dev-dependencies (development and testing)
npm install <package_name> --save-dev


The script section of the package.json allows to start command. See NPM - Script

Pass the version to your library

How to pass the version to your library

myLib.VERSION = require('../package.json').version;

Documentation / Reference

Powered by ComboStrap