cnpm
What it is
cnpm is an npm client for the China mirror of npm, available as free software for Linux, macOS, Windows, and self-hosted environments. It supports npm commands for installing and synchronizing packages, and can open package documentation or a Git web URL. The project documents global installation with `npm install cnpm -g` and requires Node.js 20 or newer, with LTS recommended. Users can configure a custom registry, registry website, and user configuration file for a private-registry npm CLI. cnpm uses npminstall by default, while the original npm installer is also available with a stated speed trade-off. The mirror is read-only and excludes write operations. npminstall accepts folders, tarballs, URLs, registry packages, and Git URLs, with options for lifecycle scripts, optional dependencies, registry-only installs, and license restrictions. It cannot install shrinkwrap files, and the project recommends migrating to utoo.
For and against
For
- Free and available across major desktop platforms
- Supports npm installation and synchronization commands
- Private registry configuration is documented
- Accepts folders, tarballs, URLs, and Git URLs
- Offers install policy options
Against
- Requires Node.js 20 or newer
- Mirror excludes write-related operations
- Cannot install from shrinkwrap files
- Project recommends migrating to utoo
The verdict
cnpm provides npm-compatible package workflows around a read-only China mirror, with private-registry options and configurable installation behavior. Its Node.js requirement and shrinkwrap limitation matter when planning adoption.
Who it suits
cnpm suits developers who need npm-compatible commands against the China mirror or a configured private registry. It supports Linux, macOS, Windows, and self-hosted use.
On the record
- Commands
- cnpm supports npm commands, including package synchronization and opening package documentation or a Git web URL.github.com · read 28 Sep 2026
- Compatibility
- cnpm supports npm commands, and npmmirror says it supports commands such as install, info, and view, except write-related operations.npmmirror.com · read 29 Sep 2026
- Install
- The project instructs users to install cnpm globally with `npm install cnpm -g`.github.com · read 28 Sep 2026
- Installation
- The project documents global installation with `npm install cnpm -g`.github.com · read 29 Sep 2026
- Installer
- cnpm uses npminstall by default; the README says users can choose the original npm installer, with slower install speed.github.com · read 29 Sep 2026
- Install options
- npminstall documents options to ignore lifecycle scripts, omit optional dependencies, enforce registry-only installs, and forbid specified licenses.github.com · read 28 Sep 2026
- License
- The cnpm repository is licensed under MIT.github.com · read 29 Sep 2026
- Limitations
- npminstall says it cannot install from shrinkwrap files and warns that failed installs are best retried after cleaning node_modules.github.com · read 28 Sep 2026
- Maintainer
- The package metadata lists fengmk2 as its author.github.com · read 29 Sep 2026
- Mirror
- npmmirror describes itself as a read-only npm mirror that aims to synchronize with the official service in real time.npmmirror.com · read 28 Sep 2026
- Mirror behavior
- npmmirror describes itself as a read-only npm mirror that aims to synchronize with the official service in real time.npmmirror.com · read 29 Sep 2026
- Mirror commands
- npmmirror says its cnpm CLI supports commands such as install, info, and view, while write-related operations are excluded.npmmirror.com · read 28 Sep 2026
- Node.js requirement
- The README lists Node.js 20 as the minimum requirement and LTS as recommended.github.com · read 29 Sep 2026
- Package documentation
- The `cnpm doc` command opens package documentation, and `cnpm doc -g` opens a Git web URL.github.com · read 29 Sep 2026
- Package sync
- Users can sync packages from npm with `cnpm sync [moduleName]`.github.com · read 29 Sep 2026
- Package types
- npminstall supports package inputs including folders, tarballs, URLs, registry packages, and Git URLs.github.com · read 28 Sep 2026
- Private registries
- The README shows how to alias cnpm with a custom registry, registry web URL, and user configuration file to build a private registry npm CLI.github.com · read 28 Sep 2026
- Private registry
- The README shows how to alias cnpm with custom registry, registry web, and user configuration URLs to build a private registry npm CLI.github.com · read 29 Sep 2026