NPM Package Management Core Process: Installation, Version Control, Dependency Management
Installation Process
NPM (Node Package Manager) is essential for managing dependencies in Node.js projects. Installation begins with ensuring Node.js is installed, as NPM relies on it. For macOS and Linux, use:
sudo npm install -g npm
This installs NPM globally, allowing commands like npm install to be run from any directory. On Windows, download the installer from npmjs.com and follow the prompts.
Compatibility: NPM supports Node.js versions 14 and above. Older versions may require manual updates.
Key Commands:
npm installinstalls packages locally.npm install --saveadds packages topackage.json.npm install --save-devinstalls dev dependencies.
Version Control
NPM manages package versions through the package.json file, which specifies dependencies, versions, and other metadata. Version control is critical for ensuring consistency across environments.
Package.json Structure:
{
"name": "my-project",
"version": "1.0.0",
"dependencies": {
"express": "^4.18.2",
"lodash": "^4.17.21"
},
"devDependencies": {
"jest": "^28.9.0"
}
}
Versioning follows semantic rules (e.g., 1.0.0 for stable releases, 1.1.0-beta.1 for beta versions).
Managing Versions:
- Use
npm install --save-devfor dev dependencies. npm installinstalls the latest stable version.npm install --saveensures dependencies are included in the project.
Registry Switching:
NPM defaults to the official registry, but you can switch to private registries like https://registry.npmmirror.com using:
npm config set registry https://registry.npmmirror.com
Dependency Management
Dependency management ensures projects use consistent versions of libraries. NPM resolves dependencies by scanning package.json and the registry.
Dependency Resolution:
When npm install runs, NPM checks the registry for required packages. If a dependency is missing, it prompts for installation.
Resolving Conflicts:
If two packages require different versions, NPM resolves conflicts by prioritizing the latest stable version unless specified otherwise.
Dev Dependencies:
Packages marked with --save-dev are installed in the node_modules directory and not included in the final package. They are used for development tools like webpack or jest.
Best Practices:
- Use
npm install --savefor production dependencies. - Regularly update packages with
npm updateto ensure security patches. - Monitor dependencies with
npm auditto identify vulnerabilities.
Example:
To install a package:
npm install axios
This installs axios and adds it to package.json with the specified version.