npm CLI - Deployment and Usage Guide
Prerequisites
- Node.js: Version 16.20.0 or higher (LTS recommended)
- npm: Version 9.7.2 or higher (comes bundled with Node.js)
- Git: For cloning the repository and contributing
- GitHub Account: Required for submitting issues, pull requests, and participating in discussions
Installation
Since this repository has been archived and moved, follow these steps to install and use npm:
-
Install npm CLI (if not already installed):
# Verify if npm is installed npm --version # If not installed, install Node.js (includes npm) # Download from https://nodejs.org/ or use your package manager -
Clone the new repository (for development/contribution):
git clone https://github.com/npm/cli.git cd cli npm install -
Verify installation:
npm --version node --version
Configuration
Environment Variables
The npm CLI uses the following environment variables:
NPM_CONFIG_REGISTRY: Custom npm registry URLNPM_TOKEN: Authentication token for private packagesNPM_CONFIG_PREFIX: Custom installation prefixNPM_CONFIG_CACHE: Custom cache directory
Configuration Files
~/.npmrc: User-level configuration.npmrcin project directory: Project-level configurationpackage.json: Project dependencies and scripts
Authentication
For publishing packages or accessing private registries:
npm login
# or
npm config set //registry.npmjs.org/:_authToken=your_token_here
Build & Run
Development
# Clone and install dependencies
git clone https://github.com/npm/cli.git
cd cli
npm install
# Run tests
npm test
# Run linting
npm run lint
# Build the project
npm run build
Production Usage
# Initialize a new project
npm init
# Install dependencies
npm install <package_name>
# Install dependencies from package.json
npm install
# Run scripts defined in package.json
npm run <script_name>
Deployment
Publishing Packages to npm Registry
# Log in to npm
npm login
# Publish your package
npm publish
Continuous Integration
Recommended CI platforms:
- GitHub Actions: Native integration with GitHub repositories
- Travis CI: Popular for open-source projects
- CircleCI: Advanced configuration options
Example GitHub Actions workflow:
name: Node CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm ci
- run: npm test
Hosting Applications
For Node.js applications built with npm packages:
- Vercel: Zero-config deployment for Node.js apps
- Netlify: Excellent for static sites and serverless functions
- Heroku: Traditional PaaS for Node.js applications
- AWS Elastic Beanstalk: Enterprise-grade deployment
Troubleshooting
Common Issues and Solutions
1. Permission Errors
# Fix permissions on Linux/macOS
sudo chown -R $USER:$(id -gn $USER) ~/.npm
sudo chown -R $USER:$(id -gn $USER) ~/.config
2. Network Issues
# Check registry connectivity
npm config get registry
# Switch to alternative registry
npm config set registry https://registry.npmjs.org/
# Use npm's built-in proxy
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
3. Dependency Conflicts
# Clear npm cache
npm cache clean --force
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install
# Check for outdated packages
npm outdated
# Update packages
npm update
4. Installation Failures
# Try with different npm version
nvm install 18
nvm use 18
# Use npm ci for clean install
npm ci
# Check Node.js version compatibility
node --version
5. Publishing Issues
# Check if package name is taken
npm view <package_name>
# Ensure you're logged in
npm whoami
# Check package.json requirements
# name, version, main, scripts.test are required
Getting Help
- Documentation: docs.npmjs.com
- Community Support: npm.community
- Bug Reports: github.com/npm/cli/issues
- Feature Requests: github.com/npm/rfcs/discussions
- Direct Support: npmjs.com/support
Performance Optimization
# Use npm ci for faster, cleaner installs in CI/CD
npm ci
# Enable npm's built-in performance optimizations
npm config set loglevel=error
npm config set progress=false
# Use package-lock.json for reproducible builds
npm install --package-lock-only
Security Best Practices
# Audit packages for vulnerabilities
npm audit
# Fix vulnerabilities automatically
npm audit fix
# Check for outdated packages
npm outdated
# Use npm's security features
npm config set save=true
npm config set save-exact=true