Npm package.json
From wikinotes
package.json
and package-lock.json
describe
project requirements, and scripts for npm managed projects.
Documentation
man package-json
https://man.archlinux.org/man/package-json.5 package.json quickstart https://nodejs.dev/learn/the-package-json-guide package-lock.json quickstart https://nodejs.dev/learn/the-package-lock-json-file version syntax https://nodejs.dev/learn/semantic-versioning-using-npm/
Locations
${PROJECT}/package.json
requirements, script entrypoints, etc ${PROJECT}/package-lock.json
exact resolved versions, set with npm update
${PROJECT}/node_modules/
project-local node packages
Basics
package.json describes your project,
has hooks for running project specfic scripts,
and manages dependencies.It can be entirely empty, or contain additional keys.
{ "name": "foo-project", "version": "1.1.1", "description": "a project about foo", "scripts": { "foo": "echo foo", // npm run ${key} -- runs ${val} on cli "bar": "echo bar" }, "dependencies": { "foopkg": "^1.0.0", // minor/patch versions only "barpkg": "~3.0.0", // patch versions only "bazpkg": "1.0.0 || >=1.1.0 <1.2.0", }, "devDependencies": { // ... } }
Usage
npm install # install all packages in package.json npm update # update packages in package.json npm run ${TASK} # run cli command associated with 'scripts' object entry