django-npm
A django staticfiles finder that uses npm
Decision gist · record as of 2026-08-14
Yes, if you need to integrate npm packages into Django's staticfiles system and prefer declarative dependency management over vendoring. The low install friction and permissive license make it a practical choice. However, the aging maintenance status (478 days since last release, Alpha classification) means you should verify compatibility with your specific Django and npm versions before committing to production use.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires npm to be installed on your system and a package.json file at your project root; django-npm wraps the npm CLI and does not replace it.
- Installation is straightforward with no runtime dependencies.
- The package is aging (478 days since last release) but the repository remains active with recent commits; maintenance status suggests it may not receive frequent updates for new Django or npm features.
License · maintenance · safety
MIT (permissive) — Licensed under MIT (permissive), so you can use, modify, and distribute django-npm freely in commercial or private projects with minimal restrictions.
last release 2025-04-23 (478 days) · last repo commit 2025-04-23 · 154 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 88,584 downloads/mo, #13,715 on PyPI
Alternatives
Verify before relying
pip install django-npm
# In settings.py:
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'npm.finders.NpmFinder',
]
NPM_ROOT_PATH = '/path/to/project'
# Then run:
python manage.py collectstatic- Whether the package works reliably with Django 5.1+ given the aging maintenance status and Alpha development classification.
- Current compatibility with modern npm versions and whether private npm registries are fully supported.
What it is and what it does
django-npm is a Django staticfiles finder that bridges npm and Django's static file system. Instead of vendoring frontend packages into your repository, you declare them in package.json at your project root, and django-npm wraps the npm CLI to install them into node_modules, then exposes selected files to Django's staticfiles system. When you run collectstatic, those npm-managed files are copied into your STATIC_ROOT alongside other static assets.
The package provides configuration options to control which npm files are exposed (via glob patterns), where they land in your static directory, and whether to cache the file list. It also offers a programmatic entry point to run npm install from Python code. No runtime dependencies are required beyond npm itself on your system.
Use it for
- Manage React, Vue, or other npm packages as Django static dependencies without checking node_modules into version control.
- Selectively expose only the built or minified files from npm packages to your Django static directory using glob patterns.
- Automate npm install as part of your Django deployment or development setup via the npm_install() function.
- Organize frontend libraries under a custom static path (e.g., /static/js/lib/) while keeping package.json as the single source of truth.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to integrate npm packages into Django's staticfiles system and prefer declarative dependency management over vendoring.
The low install friction and permissive license make it a practical choice. However, the aging maintenance status (478 days since last release, Alpha classification) means you should verify compatibility with your specific Django and npm versions before committing to production use.
Install
django-npm on PyPI
Before you install
Installation is straightforward with no runtime dependencies. The package is aging (478 days since last release) but the repository remains active with recent commits; maintenance status suggests it may not receive frequent updates for new Django or npm features.
Requires npm to be installed on your system and a package.json file at your project root; django-npm wraps the npm CLI and does not replace it.
License in practice
Licensed under MIT (permissive), so you can use, modify, and distribute django-npm freely in commercial or private projects with minimal restrictions.
Quickstart
pip install django-npm
# In settings.py:
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'npm.finders.NpmFinder',
]
NPM_ROOT_PATH = '/path/to/project'
# Then run:
python manage.py collectstatic
Verify before relying
- Whether the package works reliably with Django 5.1+ given the aging maintenance status and Alpha development classification.
- Current compatibility with modern npm versions and whether private npm registries are fully supported.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Aging 478 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 88,584 / month, #13,715 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 2Programming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.12Programming Language :: Python :: 3.2Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Topic :: Software Development :: Build Tools |
Evidence: django_npm-1.0.1-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “npm integration django”
- django-npmdjango-npm integrates npm package management into Django projects,…
- drf-spectacular-sidecarServes pre-built Swagger UI and Redoc distributions as Django static…
- django-tailwindIntegrates Tailwind CSS into Django projects with optional hot…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also django-pipeline · django-cloudinary-storage · django-sass-processor · drf-spectacular-sidecar · django-statici18n · django-s3-storage · django-webpack-loader · django-wkhtmltopdf · django-split-settings · dj-static