0.29.0-5-g701c4d9b • Published 8 years ago

@rstacruz/pnpm v0.29.0-5-g701c4d9b

Weekly downloads
4
License
MIT
Repository
github
Last release
8 years ago

pnpm

Performant npm installations

pnpm is a fast implementation of npm install. It is loosely based off ied.

npm.io

npm version Status Windows build status

Install

Install it via npm.

npm install -g pnpm

Use pnpm in place of npm. It overrides pnpm i and pnpm install—all other commands will passthru to npm.

pnpm install lodash

Custom registries

pnpm uses whatever npm's configured to use as its registry. See: custom registries.

Preview release

pnpm will stay in <1.0.0 until it's achieved feature parity with npm install. See roadmap for details.

Benchmark

time npm i babel-preset-es2015 browserify chalk debug minimist mkdirp
    66.15 real        15.60 user         3.54 sys
time pnpm i babel-preset-es2015 browserify chalk debug minimist mkdirp
    11.04 real         6.85 user         2.85 sys

Design

pnpm maintains a flat storage of all your dependencies in node_modules/.store. They are then symlinked wherever they're needed. See store layout for an explanation.

.
└─ node_modules/
   ├─ .store/
   │  ├─ chalk@1.1.1/_/
   │  │  └─ node_modules/
   │  │     ├─ ansi-styles      -> ../../../ansi-styles@2.1.0/_
   │  │     └─ has-ansi         -> ../../../has-ansi@2.0.0/_
   │  ├─ ansi-styles@2.1.0/_/
   │  └─ has-ansi@2.0.0/_/
   └─ chalk                     -> .store/chalk@1.1.1/_

Prior art

Thanks

pnpm © 2016+, Rico Sta. Cruz. Released under the MIT License. Authored and maintained by Rico Sta. Cruz with help from contributors (list).

ricostacruz.com  ·  GitHub @rstacruz  ·  Twitter @rstacruz

bylinecamelcase-keyscawchalkcommondircross-spawndebuggotgunzip-maybeis-ciis-retry-allowedlockfilemeowmkdirpmznode-gypnormalize-pathnpm-package-argobservatoryos-homedirrcread-pkg-upregistry-auth-tokenregistry-urlretryrimrafsanitize-filenamesemversorted-objectsupports-colortar-fsthenifythroatJSONStreamabababbrevabsoluteacceptsacornacorn-globalsacorn-jsxalign-textalteramdefineansi-escapesansi-redansi-regexansi-stylesansi-wrapanymatchaprobaare-we-there-yetargparsearr-diffarr-flattenarray-filterarray-flattenarray-indexarray-maparray-reducearray-unionarray-uniqarray-uniquearrifyas-arrayasapasn1asn1.jsassertassert-plusast-traverseast-typesastwasyncasync-eachautoprefixeraws-sign2aws4balanced-matchbase64-jsbasic-authbasic-auth-connectbinary-extensionsblblock-streambluebirdbn.jsbody-parserboolbaseboombrace-expansionbracesbreakablebrorandbrowser-packbrowser-resolvebrowserifybrowserify-aesbrowserify-cipherbrowserify-desbrowserify-rsabrowserify-signbrowserify-zlibbrowserslistbufferbuffer-shimsbuffer-xorbuiltin-status-codesbuiltinsbytescaller-pathcallsitescamelcasecaniuse-dbcapture-stack-tracecaselesscenter-alignchar-spinnercharacter-parsercheeriochokidarcipher-basecircular-jsonclean-csscli-cursorcli-widthcliuiclonecoco-from-streamco-fsco-fs-extraco-readcode-point-atcombine-source-mapcombined-streamcommandercommonercompare-semvercompressiblecompressionconcat-mapconcat-streamconfigstoreconnectconnect-livereloadconnect-queryconsole-browserifyconsole-control-stringsconstantinopleconstants-browserifycontent-typeconvert-source-mapcore-util-iscreate-ecdhcreate-error-classcreate-hashcreate-hmaccryptilescrypto-browserifycsscss-parsecss-selectcss-stringifycss-whatcssomcssstyleddashdashdate-nowdebouncedebounce-collectdecamelizedeep-equaldeep-isdefine-propertiesdefineddefsdeldelayed-streamdelegatesdepddeps-sortdes.jsdestroydetectivediffie-hellmandocpressdocpress-basedocpress-coredocpress-searchdoctrinedom-serializerdom101domain-browserdomelementtypedomhandlerdomutilsduplexer2duplexer3duplexifyecc-jsbnee-firstellipticend-of-streamentitieserror-exes-abstractes-to-primitivees5-extes6-iteratores6-mapes6-setes6-symboles6-weak-mapescape-htmlescape-string-regexpescodegenescopeeslinteslint-config-standardeslint-plugin-promiseeslint-plugin-standardespreeesprimaesrecurseestraverseestraverse-fbesutilsevent-emittereventsevp_bytestokeyexit-hookexpand-bracketsexpand-rangeextendextend-shallowextglobextsprintffast-levenshteinfast-url-parserfaye-websocketfiguresfile-entry-cachefilename-regexfill-rangefinalhandlerfind-upflat-argumentsflat-cachefor-infor-ownforeachforever-agentform-datafs-extrafs.realpathfseventsfstreamfunction-bindgaugegenerate-functiongenerate-object-propertyget-portget-proxyget-streamgetpassgit-update-ghpagesgithub-markdown-cssglobglob-baseglob-parentglob-slashglob-slasherglobalsglobbygnodegraceful-fsgraceful-readlinkgray-matterhandlebarshar-validatorhashas-ansihas-colorhas-generatorshas-unicodehash.jshawkhighlight.jshoekhome-dirhtmlescapehtmlparser2http-errorshttp-signaturehttps-browserifyiconfontsiconv-liteieee754ignoreimurmurhashindexofinfinity-agentinflightinheritsinline-source-mapinquirerinsert-module-globalsinvert-kvisis-arrayishis-binary-pathis-bufferis-callableis-date-objectis-dotfileis-equal-shallowis-extendableis-extglobis-fullwidth-code-pointis-globis-my-json-validis-npmis-numberis-path-cwdis-path-in-cwdis-path-insideis-plain-objis-posix-bracketis-primitiveis-promiseis-propertyis-redirectis-regexis-resolvableis-streamis-symbolis-typedarrayis-urlis-utf8isarrayisexeisobjectisstreamistanbuljadejodid25519join-pathjs-base64js-yamljsbnjsdomjson-schemajson-stable-stringifyjson-stringify-safejsonfilejsonifyjsonparsejsonpointerjsprimjstransformerkind-oflabeled-stream-splicerlatest-versionlazy-cachelcidlevnlexical-scopelinkify-itlivereload-jsload-json-filelodashlodash._isnativelodash._objecttypeslodash._shimkeyslodash.assignlodash.isargumentslodash.isobjectlodash.keyslodash.memoizelodash.valueslongestlowercase-keyslru-cachelunrmap-objmarkdown-itmarkdown-it-decoratemarkedmdurlmedia-typermetalsmithmetalsmith-startmethodsmicromatchmiller-rabinmime-dbmime-typesminimalistic-assertminimatchminimistmodule-depsmorganmute-streamnannashnative-or-bluebirdnativesncpnegotiatornested-error-stacksnixtnode-status-codesnode-uuidnoptnormalize.cssnpmlognprogressnth-checknum2fractionnumber-is-nannwmatcheroauth-signobject-assignobject-inspectobject-keysobject.omiton-finishedon-headersonceonetimeonmountoptimistoptionatoros-browserifyos-localeos-tmpdirosenvpackage-jsonpakoparentsparse-asn1parse-globparse-jsonparse5parseurlpath-arraypath-browserifypath-existspath-is-absolutepath-is-insidepath-platformpath-to-regexppbkdf2pifypinkiepinkie-promisepjaxpkg-confpluralizepostcsspostcss-value-parserprelude-lsprepend-httppreserveprivateprocessprocess-nextick-argsprogresspromisepseudomappublic-encryptpunycodeqqsquerystringquerystring-es3randomaticrandombytesraw-bodyread-all-streamread-only-streamreadable-streamreadable-wrapreaddirpreadline2recastrecursive-readdirregeneratorregenerator-runtimeregex-cacherepeat-elementrepeat-stringrequestrequire-main-filenamerequire-uncachedresolveresolve-fromrestore-cursorresumerright-alignripemd160routerrsvprun-asyncrx-litesaxsemver-diffsepiaset-blockingset-immediate-shimsetprototypeofsha.jsshasumshell-quoteshelljssigmundsignal-exitsimple-fmtsimple-isslice-ansislugifysntpsource-mapsprintf-jssshpkstablestat-modestatusesstream-browserifystream-combiner2stream-httpstream-shiftstream-splicerstring-lengthstring-widthstring.prototype.trimstring_decoderstringmapstringsetstringstreamstrip-ansistrip-bomstrip-json-commentsstylussubargsuperstaticsymbolsymbol-treesyntax-errortabletap-spectapetartext-tablethenify-allthroughthrough2thunkifytimed-outtimers-browserifytiny-lrto-arraybuffertough-cookietoxictr46transformerstry-requiretryittryortty-browserifytunnel-agenttv4tweetnacltype-checktype-istypedarrayuc.microuglify-jsuglify-to-browserifyuglifyifyumdunpipeunyieldunzip-responseupdate-notifierurlurl-joinurl-parse-laxuser-homeutilutil-deprecateutils-mergeuuidvaryverrorvm-browserifyvoid-elementswarewebidl-conversionswebsocket-driverwebsocket-extensionswhatwg-url-compatwhichwide-alignwin-forkwindow-sizewithwordwrapwrap-ansiwrap-fnwrappywritexdg-basedirxml-name-validatorxregexpxtendy18nyallistyargsyargs-parser