
Company News
Socket Partners with Replit to Block Malicious Packages in AI-Powered Development
Replit is integrating Socket Firewall into its AI-powered development experience to help protect builders from malicious open source packages.
qap_install
Advanced tools
Let npm install fast and easy.
$ npm install npminstall -g
It is integrated in cnpm.
$ npm install cnpm -g
$ cnpm install // will use npminstall
Usage:
npminstall
npminstall <pkg>
npminstall <pkg>@<tag>
npminstall <pkg>@<version>
npminstall <pkg>@<version range>
npminstall <folder>
npminstall <tarball file>
npminstall <tarball url>
npminstall <git:// url>
npminstall <github username>/<github project>
Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
If no argument is supplied, installs dependencies from ./package.json.
Options:
--production: won't install devDependencies
--save, --save-dev, --save-optional: save installed dependencies into package.json
-g, --global: install devDependencies to global directory which specified in '$ npm config get prefix'
-r, --registry: specify custom registry
-c, --china: specify in china, will automatically using chinses npm registry and other binary's mirrors
-d, --detail: show detail log of installation
--trace: show memory and cpu usages traces of installation
--ignore-scripts: ignore all preinstall / install and postinstall scripts during the installation
--forbidden-licenses: forbit install packages which used these licenses
--engine-strict: refuse to install (or even consider installing) any package that claims to not be compatible with the current Node.js version.
--flatten: flatten dependencies by matching ancestors' dependencies
Usage:
npmuninstall <pkg>
npmuninstall <pkg>@<version>
npmuninstall <pkg>@<version> [<pkg>@<version>]
Usage:
npmlink <folder>
$ npm install npminstall --save
const co = require('co');
const npminstall = require('npminstall');
co(function* () {
yield npminstall({
// install root dir
root: process.cwd(),
// optional packages need to install, default is package.json's dependencies and devDependencies
// pkgs: [
// { name: 'foo', version: '~1.0.0' },
// ],
// install to specific directory, default to root
// targetDir: '/home/admin/.global/lib',
// link bin to specific directory (for global install)
// binDir: '/home/admin/.global/bin',
// registry, default is https://registry.npmjs.org
// registry: 'https://registry.npmjs.org',
// debug: false,
// storeDir: root + 'node_modules',
// ignoreScripts: true, // ignore pre/post install scripts, default is `false`
// forbiddenLicenses: forbit install packages which used these licenses
});
}).catch(err => {
console.error(err.stack);
});
npm install file:eslint-rule)npm install ./rule.tgz)npm install https://github.com/indexzero/forever/tarball/v0.5.6)npm install git://github.com/timaschew/cogent#fix-redirects)-g, --global)preinstall, install, postinstall scripts--production modesave, save-dev, save-optionalignore-scriptsThis project is inspired by pnpm, and has a similar store structure like pnpm. You can read pnpm vs npm to see the different with npm.
npminstall will collect all postinstall scripts, and execute them until all dependencies installed.node_modules directoryTwo rules:
options.storeDir's node_modules.node_modules.e.g.:
{ "dependencies": { "debug": "2.2.0" } } (root){ "dependencies": { "ms": "0.7.1" } }app/
├── package.json
└── node_modules
├── .2.2.0@debug
│ ├── node_modules
│ │ └── ms -> ../../.0.7.1@ms
├── .0.7.1@ms
├── debug -> .2.2.0@debug
└── ms -> .0.7.1@ms # for peerDependencies
npminstall will always try to install the maximal matched version of semver:
root/
koa@1.1.0
mod/
koa@~1.1.0
# will install tow different version of koa when use npminstall.
you can enable flatten mode by --flatten flag, in this mod, npminstall will try to use ancestors' dependencies to minimize the dependence-tree.
root/
koa@1.1.0
mod/
koa@~1.1.0
root/
koa@1.1.0
mod/
koa@^1.1.0
# both the same version: 1.1.0
root/
koa@~1.1.0
mod/
koa@^1.1.0
# both the same version: 1.1.2
root/
mod/
koa@^1.1.0
moe/
koa@~1.1.0
# tow different versions
npminstall will always treat n.x and n.m.x as flattened
root/
koa@1.1.0
mod/
koa@1.1.x
both the same version: 1.1.0
root/
koa@~1.1.0
mod/
koa@1.x
both the same version: 1.1.2
| cli | real | user | sys |
|---|---|---|---|
| npminstall | 0m10.908s | 0m8.733s | 0m4.282s |
| npminstall with cache | 0m8.815s | 0m7.492s | 0m3.644s |
| npminstall --no-cache | 0m10.279s | 0m8.255s | 0m3.932s |
| pnpm | 0m13.509s | 0m11.650s | 0m4.443s |
| npm | 0m28.171s | 0m26.085s | 0m8.219s |
| npm with cache | 0m20.939s | 0m19.415s | 0m6.302s |
see https://github.com/rstacruz/pnpm#benchmark
npminstall babel-preset-es2015 browserify chalk debug minimist mkdirp
real 0m8.929s user 0m5.606s sys 0m2.913s
pnpm i babel-preset-es2015 browserify chalk debug minimist mkdirp
real 0m12.998s user 0m8.653s sys 0m3.362s
npm i babel-preset-es2015 browserify chalk debug minimist mkdirp
real 1m4.729s user 0m55.589s sys 0m23.135s
FAQs
Let npm install fast and easy
We found that qap_install demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Replit is integrating Socket Firewall into its AI-powered development experience to help protect builders from malicious open source packages.

Security News
npm confirmed a tooling bug incorrectly marked several one-character packages as security holders and said it was working on a rollback.

Research
/Security News
Newer packages in this compromise use native extensions and .pth loaders to execute JavaScript stealers in developer environments.