摘要:的包管理工具現(xiàn)在的火熱程度一點(diǎn)都沒有下降,而成為了前端必備工具,特別是的包庫(kù)已經(jīng)成為了前端必備的,即使你不接觸作為后端的存在,現(xiàn)在各種第三方包依然需要使用來(lái)管理,可以說一個(gè)現(xiàn)代化的前段工程如果不使用類似這樣的包管理工具的話,應(yīng)該不算一個(gè)大型
node的包管理工具npm
node現(xiàn)在的火熱程度一點(diǎn)都沒有下降,而成為了前端必備工具,特別是npm的包庫(kù)已經(jīng)成為了前端必備的,即使你不接觸node作為后端的存在,現(xiàn)在各種第三方包依然需要使用npm來(lái)管理,可以說一個(gè)現(xiàn)代化的前段工程如果不使用類似npm這樣的包管理工具的話,應(yīng)該不算一個(gè)大型工程。
npm使用官方網(wǎng)站:https://docs.npmjs.com/ ,npm的安裝什么的就不說了,node的大部分版本也都自帶了npm,npm管理者node的大部分包,開發(fā)者可以上傳自己寫的包供他人使用,也可以下載使用別人寫好的包進(jìn)行使用,
使用npm init 來(lái)進(jìn)行初始化一個(gè)項(xiàng)目,會(huì)生成一個(gè)package.json文件,而版本管理就依賴這個(gè)文件,官方給的樣例文件:
{ "version": "5.3.0", "name": "npm", "description": "a package manager for JavaScript", "keywords": [ "install", "modules", "package manager", "package.json" ], "preferGlobal": true, "config": { "publishtest": false }, "homepage": "https://docs.npmjs.com/", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", "url": "http://blog.izs.me" }, "repository": { "type": "git", "url": "git+https://github.com/npm/npm.git" }, "bugs": { "url": "https://github.com/npm/npm/issues" }, "directories": { "bin": "./bin", "doc": "./doc", "lib": "./lib", "man": "./man" }, "main": "./lib/npm.js", "bin": { "npm": "./bin/npm-cli.js", "npx": "./bin/npx-cli.js" }, "dependencies": { "JSONStream": "~1.3.1", "abbrev": "~1.1.0", "ansi-regex": "~3.0.0", "ansicolors": "~0.3.2", "ansistyles": "~0.1.3", "aproba": "~1.1.2", "archy": "~1.0.0", "bluebird": "~3.5.0", "cacache": "~9.2.9", "call-limit": "~1.1.0", "chownr": "~1.0.1", "cmd-shim": "~2.0.2", "columnify": "~1.5.4", "config-chain": "~1.1.11", "detect-indent": "~5.0.0", "dezalgo": "~1.0.3", "editor": "~1.0.0", "fs-vacuum": "~1.2.10", "fs-write-stream-atomic": "~1.0.10", "fstream": "~1.0.11", "fstream-npm": "~1.2.1", "glob": "~7.1.2", "graceful-fs": "~4.1.11", "has-unicode": "~2.0.1", "hosted-git-info": "~2.5.0", "iferr": "~0.1.5", "inflight": "~1.0.6", "inherits": "~2.0.3", "ini": "~1.3.4", "init-package-json": "~1.10.1", "lazy-property": "~1.0.0", "libnpx": "~9.2.0", "lockfile": "~1.0.3", "lodash._baseuniq": "~4.6.0", "lodash.clonedeep": "~4.5.0", "lodash.union": "~4.6.0", "lodash.uniq": "~4.5.0", "lodash.without": "~4.4.0", "lru-cache": "~4.1.1", "mississippi": "~1.3.0", "mkdirp": "~0.5.1", "move-concurrently": "~1.0.1", "node-gyp": "~3.6.2", "nopt": "~4.0.1", "normalize-package-data": "~2.4.0", "npm-cache-filename": "~1.0.2", "npm-install-checks": "~3.0.0", "npm-package-arg": "~5.1.2", "npm-registry-client": "~8.4.0", "npm-user-validate": "~1.0.0", "npmlog": "~4.1.2", "once": "~1.4.0", "opener": "~1.4.3", "osenv": "~0.1.4", "pacote": "~2.7.38", "path-is-inside": "~1.0.2", "promise-inflight": "~1.0.1", "read": "~1.0.7", "read-cmd-shim": "~1.0.1", "read-installed": "~4.0.3", "read-package-json": "~2.0.10", "read-package-tree": "~5.1.6", "readable-stream": "~2.3.3", "request": "~2.81.0", "retry": "~0.10.1", "rimraf": "~2.6.1", "safe-buffer": "~5.1.1", "semver": "~5.3.0", "sha": "~2.0.1", "slide": "~1.1.6", "sorted-object": "~2.0.1", "sorted-union-stream": "~2.1.3", "ssri": "~4.1.6", "strip-ansi": "~4.0.0", "tar": "~2.2.1", "text-table": "~0.2.0", "uid-number": "0.0.6", "umask": "~1.1.0", "unique-filename": "~1.1.0", "unpipe": "~1.0.0", "update-notifier": "~2.2.0", "uuid": "~3.1.0", "validate-npm-package-name": "~3.0.0", "which": "~1.2.14", "worker-farm": "~1.4.1", "wrappy": "~1.0.2", "write-file-atomic": "~2.1.0", "debuglog": "*", "imurmurhash": "*", "lodash._baseindexof": "*", "lodash._bindcallback": "*", "lodash._cacheindexof": "*", "lodash._createcache": "*", "lodash._getnative": "*", "lodash.restparam": "*", "readdir-scoped-modules": "*", "validate-npm-package-license": "*" }, "bundleDependencies": [ "abbrev", "ansi-regex", "ansicolors", "ansistyles", "aproba", "archy", "cacache", "call-limit", "bluebird", "chownr", "cmd-shim", "columnify", "config-chain", "debuglog", "detect-indent", "dezalgo", "editor", "fs-vacuum", "fs-write-stream-atomic", "fstream", "fstream-npm", "glob", "graceful-fs", "has-unicode", "hosted-git-info", "iferr", "imurmurhash", "inflight", "inherits", "ini", "init-package-json", "JSONStream", "lazy-property", "lockfile", "lodash._baseindexof", "lodash._baseuniq", "lodash._bindcallback", "lodash._cacheindexof", "lodash._createcache", "lodash._getnative", "lodash.clonedeep", "lodash.restparam", "lodash.union", "lodash.uniq", "lodash.without", "lru-cache", "mkdirp", "mississippi", "move-concurrently", "node-gyp", "nopt", "normalize-package-data", "npm-cache-filename", "npm-install-checks", "npm-package-arg", "npm-registry-client", "npm-user-validate", "npmlog", "once", "opener", "osenv", "pacote", "path-is-inside", "promise-inflight", "read", "read-cmd-shim", "read-installed", "read-package-json", "read-package-tree", "readable-stream", "readdir-scoped-modules", "request", "retry", "rimraf", "semver", "sha", "slide", "sorted-object", "sorted-union-stream", "ssri", "strip-ansi", "tar", "text-table", "uid-number", "umask", "unique-filename", "unpipe", "update-notifier", "uuid", "validate-npm-package-license", "validate-npm-package-name", "which", "wrappy", "write-file-atomic", "safe-buffer", "worker-farm", "libnpx" ], "devDependencies": { "deep-equal": "~1.0.1", "marked": "~0.3.6", "marked-man": "~0.2.1", "npm-registry-couchapp": "~2.6.13", "npm-registry-mock": "~1.1.0", "require-inject": "~1.4.2", "sprintf-js": "~1.1.1", "standard": "~6.0.8", "tacks": "~1.2.6", "tap": "~10.7.0" }, "scripts": { "dumpconf": "env | grep npm | sort | uniq", "prepare": "node bin/npm-cli.js --no-timing prune --prefix=. --no-global && rimraf test/*/*/node_modules && make -j4 doc", "preversion": "bash scripts/update-authors.sh && git add AUTHORS && git commit -m "update AUTHORS" || true", "tap": "tap --timeout 300", "tap-cover": "tap --nyc-arg="--cache" --coverage --timeout 600", "test": "standard && npm run test-tap", "test-coverage": "npm run tap-cover -- "test/tap/*.js" "test/network/*.js" "test/broken-under-*/*.js"", "test-tap": "npm run tap -- "test/tap/*.js" "test/network/*.js" "test/broken-under-*/*.js"", "test-node": "tap --timeout 240 "test/tap/*.js" "test/network/*.js" "test/broken-under-nyc*/*.js"" }, "license": "Artistic-2.0", "contributors": [ { "name": "Isaac Z. Schlueter", "email": "i@izs.me" }, { "name": "Steve Steiner", "email": "ssteinerX@gmail.com" }, { "name": "Mikeal Rogers", "email": "mikeal.rogers@gmail.com" }, { "name": "Aaron Blohowiak", "email": "aaron.blohowiak@gmail.com" }, { "name": "Martyn Smith", "email": "martyn@dollyfish.net.nz" }, { "name": "Charlie Robbins", "email": "charlie.robbins@gmail.com" }, { "name": "Francisco Treacy", "email": "francisco.treacy@gmail.com" }, { "name": "Cliffano Subagio", "email": "cliffano@gmail.com" }, { "name": "Christian Eager", "email": "christian.eager@nokia.com" }, { "name": "Dav Glass", "email": "davglass@gmail.com" }, { "name": "Alex K. Wolfe", "email": "alexkwolfe@gmail.com" }, { "name": "James Sanders", "email": "jimmyjazz14@gmail.com" }, { "name": "Reid Burke", "email": "me@reidburke.com" }, { "name": "Arlo Breault", "email": "arlolra@gmail.com" }, { "name": "Timo Derstappen", "email": "teemow@gmail.com" }, { "name": "Bart Teeuwisse", "email": "bart.teeuwisse@thecodemill.biz" }, { "name": "Ben Noordhuis", "email": "info@bnoordhuis.nl" }, { "name": "Tor Valamo", "email": "tor.valamo@gmail.com" }, { "name": "Whyme.Lyu", "email": "5longluna@gmail.com" }, { "name": "Olivier Melcher", "email": "olivier.melcher@gmail.com" }, { "name": "Toma啪 Muraus", "email": "kami@k5-storitve.net" }, { "name": "Evan Meagher", "email": "evan.meagher@gmail.com" }, { "name": "Orlando Vazquez", "email": "ovazquez@gmail.com" }, { "name": "Kai Chen", "email": "kaichenxyz@gmail.com" }, { "name": "George Miroshnykov", "email": "gmiroshnykov@lohika.com" }, { "name": "Geoff Flarity", "email": "geoff.flarity@gmail.com" }, { "name": "Max Goodman", "email": "c@chromakode.com" }, { "name": "Pete Kruckenberg", "email": "pete@kruckenberg.com" }, { "name": "Laurie Harper", "email": "laurie@holoweb.net" }, { "name": "Chris Wong", "email": "chris@chriswongstudio.com" }, { "name": "Scott Bronson", "email": "brons_github@rinspin.com" }, { "name": "Federico Romero", "email": "federomero@gmail.com" }, { "name": "Visnu Pitiyanuvath", "email": "visnupx@gmail.com" }, { "name": "Irakli Gozalishvili", "email": "rfobic@gmail.com" }, { "name": "Mark Cahill", "email": "mark@tiemonster.info" }, { "name": "Tony", "email": "zearin@gonk.net" }, { "name": "Iain Sproat", "email": "iainsproat@gmail.com" }, { "name": "Trent Mick", "email": "trentm@gmail.com" }, { "name": "Felix Geisendo虉rfer", "email": "felix@debuggable.com" }, { "name": "Jameson Little", "email": "t.jameson.little@gmail.com" }, { "name": "Conny Brunnkvist", "email": "conny@fuchsia.se" }, { "name": "Will Elwood", "email": "w.elwood08@gmail.com" }, { "name": "Dean Landolt", "email": "dean@deanlandolt.com" }, { "name": "Oleg Efimov", "email": "efimovov@gmail.com" }, { "name": "Martin Cooper", "email": "mfncooper@gmail.com" }, { "name": "Jann Horn", "email": "jannhorn@googlemail.com" }, { "name": "Andrew Bradley", "email": "cspotcode@gmail.com" }, { "name": "Maciej Ma艂ecki", "email": "me@mmalecki.com" }, { "name": "Stephen Sugden", "email": "glurgle@gmail.com" }, { "name": "Michael Budde", "email": "mbudde@gmail.com" }, { "name": "Jason Smith", "email": "jhs@iriscouch.com" }, { "name": "Gautham Pai", "email": "buzypi@gmail.com" }, { "name": "David Trejo", "email": "david.daniel.trejo@gmail.com" }, { "name": "Paul Vorbach", "email": "paul@vorb.de" }, { "name": "George Ornbo", "email": "george@shapeshed.com" }, { "name": "Tim Oxley", "email": "secoif@gmail.com" }, { "name": "Tyler Green", "email": "tyler.green2@gmail.com" }, { "name": "Dave Pacheco", "email": "dap@joyent.com" }, { "name": "Danila Gerasimov", "email": "danila.gerasimov@gmail.com" }, { "name": "Rod Vagg", "email": "rod@vagg.org" }, { "name": "Christian Howe", "email": "coderarity@gmail.com" }, { "name": "Andrew Lunny", "email": "alunny@gmail.com" }, { "name": "Henrik Hodne", "email": "dvyjones@binaryhex.com" }, { "name": "Adam Blackburn", "email": "regality@gmail.com" }, { "name": "Kris Windham", "email": "kriswindham@gmail.com" }, { "name": "Jens Grunert", "email": "jens.grunert@gmail.com" }, { "name": "Joost-Wim Boekesteijn", "email": "joost-wim@boekesteijn.nl" }, { "name": "Dalmais Maxence", "email": "root@ip-10-195-202-5.ec2.internal" }, { "name": "Marcus Ekwall", "email": "marcus.ekwall@gmail.com" }, { "name": "Aaron Stacy", "email": "aaron.r.stacy@gmail.com" }, { "name": "Phillip Howell", "email": "phowell@cothm.org" }, { "name": "Domenic Denicola", "email": "domenic@domenicdenicola.com" }, { "name": "James Halliday", "email": "mail@substack.net" }, { "name": "Jeremy Cantrell", "email": "jmcantrell@gmail.com" }, { "name": "Ribettes", "email": "patlogan29@gmail.com" }, { "name": "Don Park", "email": "donpark@docuverse.com" }, { "name": "Einar Otto Stangvik", "email": "einaros@gmail.com" }, { "name": "Kei Son", "email": "heyacct@gmail.com" }, { "name": "Nicolas Morel", "email": "marsup@gmail.com" }, { "name": "Mark Dube", "email": "markisdee@gmail.com" }, { "name": "Nathan Rajlich", "email": "nathan@tootallnate.net" }, { "name": "Maxim Bogushevich", "email": "boga1@mail.ru" }, { "name": "Meaglin", "email": "Meaglin.wasabi@gmail.com" }, { "name": "Ben Evans", "email": "ben@bensbit.co.uk" }, { "name": "Nathan Zadoks", "email": "nathan@nathan7.eu" }, { "name": "Brian White", "email": "mscdex@mscdex.net" }, { "name": "Jed Schmidt", "email": "tr@nslator.jp" }, { "name": "Ian Livingstone", "email": "ianl@cs.dal.ca" }, { "name": "Patrick Pfeiffer", "email": "patrick@buzzle.at" }, { "name": "Paul Miller", "email": "paul@paulmillr.com" }, { "name": "Ryan Emery", "email": "seebees@gmail.com" }, { "name": "Carl Lange", "email": "carl@flax.ie" }, { "name": "Jan Lehnardt", "email": "jan@apache.org" }, { "name": "Stuart P. Bentley", "email": "stuart@testtrack4.com" }, { "name": "Johan Sk枚ld", "email": "johan@skold.cc" }, { "name": "Stuart Knightley", "email": "stuart@stuartk.com" }, { "name": "Niggler", "email": "nirk.niggler@gmail.com" }, { "name": "Paolo Fragomeni", "email": "paolo@async.ly" }, { "name": "Jaakko Manninen", "email": "jaakko@rocketpack.fi" }, { "name": "Luke Arduini", "email": "luke.arduini@gmail.com" }, { "name": "Larz Conwell", "email": "larz@larz-laptop.(none)", "url": "none" }, { "name": "Marcel Klehr", "email": "mklehr@gmx.net" }, { "name": "Robert Kowalski", "email": "rok@kowalski.gd" }, { "name": "Forbes Lindesay", "email": "forbes@lindesay.co.uk" }, { "name": "Vaz Allen", "email": "vaz@tryptid.com" }, { "name": "Jake Verbaten", "email": "raynos2@gmail.com" }, { "name": "Schabse Laks", "email": "Dev@SLaks.net" }, { "name": "Florian Margaine", "email": "florian@margaine.com" }, { "name": "Johan Nordberg", "email": "its@johan-nordberg.com" }, { "name": "Ian Babrou", "email": "ibobrik@gmail.com" }, { "name": "Di Wu", "email": "dwu@palantir.com" }, { "name": "Mathias Bynens", "email": "mathias@qiwi.be" }, { "name": "Matt McClure", "email": "matt.mcclure@mapmyfitness.com" }, { "name": "Matt Lunn", "email": "matt@mattlunn.me.uk" }, { "name": "Alexey Kreschuk", "email": "akrsch@gmail.com" }, { "name": "elisee", "email": "elisee@sparklin.org" }, { "name": "Robert Gieseke", "email": "robert.gieseke@gmail.com" }, { "name": "Franc抬ois Frisch", "email": "francoisfrisch@gmail.com" }, { "name": "Trevor Burnham", "email": "tburnham@hubspot.com" }, { "name": "Alan Shaw", "email": "alan@freestyle-developments.co.uk" }, { "name": "TJ Holowaychuk", "email": "tj@vision-media.ca" }, { "name": "Nicholas Kinsey", "email": "pyro@feisty.io" }, { "name": "Paulo Cesar", "email": "pauloc062@gmail.com" }, { "name": "Elan Shanker", "email": "elan.shanker@gmail.com" }, { "name": "Jon Spencer", "email": "jon@jonspencer.ca" }, { "name": "Jason Diamond", "email": "jason@diamond.name" }, { "name": "Maximilian Antoni", "email": "mail@maxantoni.de" }, { "name": "Thom Blake", "email": "tblake@brightroll.com" }, { "name": "Jess Martin", "email": "jessmartin@gmail.com" }, { "name": "Spain Train", "email": "michael.spainhower@opower.com" }, { "name": "Alex Rodionov", "email": "p0deje@gmail.com" }, { "name": "Matt Colyer", "email": "matt@colyer.name" }, { "name": "Evan You", "email": "yyx990803@gmail.com" }, { "name": "bitspill", "email": "bitspill+github@bitspill.net" }, { "name": "Gabriel Falkenberg", "email": "gabriel.falkenberg@gmail.com" }, { "name": "Alexej Yaroshevich", "email": "alex@qfox.ru" }, { "name": "Quim Calpe", "email": "quim@kalpe.com" }, { "name": "Steve Mason", "email": "stevem@brandwatch.com" }, { "name": "Wil Moore III", "email": "wil.moore@wilmoore.com" }, { "name": "Sergey Belov", "email": "peimei@ya.ru" }, { "name": "Tom Huang", "email": "hzlhu.dargon@gmail.com" }, { "name": "CamilleM", "email": "camille.moulin@alterway.fr" }, { "name": "S茅bastien Santoro", "email": "dereckson@espace-win.org" }, { "name": "Evan Lucas", "email": "evan@btc.com" }, { "name": "Quinn Slack", "email": "qslack@qslack.com" }, { "name": "Alex Kocharin", "email": "alex@kocharin.ru" }, { "name": "Daniel Santiago", "email": "daniel.santiago@highlevelwebs.com" }, { "name": "Denis Gladkikh", "email": "outcoldman@gmail.com" }, { "name": "Andrew Horton", "email": "andrew.j.horton@gmail.com" }, { "name": "Zeke Sikelianos", "email": "zeke@sikelianos.com" }, { "name": "Dylan Greene", "email": "dylang@gmail.com" }, { "name": "Franck Cuny", "email": "franck.cuny@gmail.com" }, { "name": "Yeonghoon Park", "email": "sola92@gmail.com" }, { "name": "Rafael de Oleza", "email": "rafa@spotify.com" }, { "name": "Mikola Lysenko", "email": "mikolalysenko@gmail.com" }, { "name": "Yazhong Liu", "email": "yorkiefixer@gmail.com" }, { "name": "Neil Gentleman", "email": "ngentleman@gmail.com" }, { "name": "Kris Kowal", "email": "kris.kowal@cixar.com" }, { "name": "Alex Gorbatchev", "email": "alex.gorbatchev@gmail.com" }, { "name": "Shawn Wildermuth", "email": "shawn@wildermuth.com" }, { "name": "Wesley de Souza", "email": "wesleywex@gmail.com" }, { "name": "yoyoyogi", "email": "yogesh.k@gmail.com" }, { "name": "J. Tangelder", "email": "j.tangelder@gmail.com" }, { "name": "Jean Lauliac", "email": "jean@lauliac.com" }, { "name": "Andrey Kislyuk", "email": "kislyuk@gmail.com" }, { "name": "Thorsten Lorenz", "email": "thlorenz@gmx.de" }, { "name": "Julian Gruber", "email": "julian@juliangruber.com" }, { "name": "Benjamin Coe", "email": "bencoe@gmail.com" }, { "name": "Alex Ford", "email": "Alex.Ford@CodeTunnel.com" }, { "name": "Matt Hickford", "email": "matt.hickford@gmail.com" }, { "name": "Sean McGivern", "email": "sean.mcgivern@rightscale.com" }, { "name": "C J Silverio", "email": "ceejceej@gmail.com" }, { "name": "Robin Tweedie", "email": "robin@songkick.com" }, { "name": "Miroslav Bajto擰", "email": "miroslav@strongloop.com" }, { "name": "David Glasser", "email": "glasser@davidglasser.net" }, { "name": "Gianluca Casati", "email": "casati_gianluca@yahoo.it" }, { "name": "Forrest L Norvell", "email": "ogd@aoaioxxysz.net" }, { "name": "Karsten Tinnefeld", "email": "k.tinnefeld@googlemail.com" }, { "name": "Bryan Burgers", "email": "bryan@burgers.io" }, { "name": "David Beitey", "email": "david@davidjb.com" }, { "name": "Evan You", "email": "yyou@google.com" }, { "name": "Zach Pomerantz", "email": "zmp@umich.edu" }, { "name": "Chris Williams", "email": "cwilliams88@gmail.com" }, { "name": "sudodoki", "email": "smd.deluzion@gmail.com" }, { "name": "Mick Thompson", "email": "dthompson@gmail.com" }, { "name": "Felix Rabe", "email": "felix@rabe.io" }, { "name": "Michael Hayes", "email": "michael@hayes.io" }, { "name": "Chris Dickinson", "email": "christopher.s.dickinson@gmail.com" }, { "name": "Bradley Meck", "email": "bradley.meck@gmail.com" }, { "name": "GeJ", "email": "geraud@gcu.info" }, { "name": "Andrew Terris", "email": "atterris@gmail.com" }, { "name": "Michael Nisi", "email": "michael.nisi@gmail.com" }, { "name": "fengmk2", "email": "fengmk2@gmail.com" }, { "name": "Adam Meadows", "email": "adam.meadows@gmail.com" }, { "name": "Chulki Lee", "email": "chulki.lee@gmail.com" }, { "name": "涓嶅洓", "email": "busi.hyy@taobao.com" }, { "name": "dead_horse", "email": "dead_horse@qq.com" }, { "name": "Kenan Yildirim", "email": "kenan@kenany.me" }, { "name": "Laurie Voss", "email": "git@seldo.com" }, { "name": "Rebecca Turner", "email": "me@re-becca.org" }, { "name": "Hunter Loftis", "email": "hunter@hunterloftis.com" }, { "name": "Peter Richardson", "email": "github@zoomy.net" }, { "name": "Jussi Kalliokoski", "email": "jussi.kalliokoski@gmail.com" }, { "name": "Filip Weiss", "email": "me@fiws.net" }, { "name": "Timo Wei脽", "email": "timoweiss@Timo-MBP.local" }, { "name": "Christopher Hiller", "email": "chiller@badwing.com" }, { "name": "J茅r茅my Lal", "email": "kapouer@melix.org" }, { "name": "Anders Janmyr", "email": "anders@janmyr.com" }, { "name": "Chris Meyers", "email": "chris.meyers.fsu@gmail.com" }, { "name": "Ludwig Magnusson", "email": "ludwig@mediatool.com" }, { "name": "Wout Mertens", "email": "Wout.Mertens@gmail.com" }, { "name": "Nick Santos", "email": "nick@medium.com" }, { "name": "Terin Stock", "email": "terinjokes@gmail.com" }, { "name": "Faiq Raza", "email": "faiqrazarizvi@gmail.com" }, { "name": "Thomas Torp", "email": "thomas@erupt.no" }, { "name": "Sam Mikes", "email": "smikes@cubane.com" }, { "name": "Mat Tyndall", "email": "mat.tyndall@gmail.com" }, { "name": "Tauren Mills", "email": "tauren@sportzing.com" }, { "name": "Ron Martinez", "email": "ramartin.net@gmail.com" }, { "name": "Kazuhito Hokamura", "email": "k.hokamura@gmail.com" }, { "name": "Tristan Davies", "email": "github@tristan.io" }, { "name": "David Volm", "email": "david@volminator.com" }, { "name": "Lin Clark", "email": "lin.w.clark@gmail.com" }, { "name": "Ben Page", "email": "bpage@dewalch.com" }, { "name": "Jeff Jo", "email": "jeffjo@squareup.com" }, { "name": "martinvd", "email": "martinvdpub@gmail.com" }, { "name": "Mark J. Titorenko", "email": "nospam-github.com@titorenko.net" }, { "name": "Oddur Sigurdsson", "email": "oddurs@gmail.com" }, { "name": "Eric Mill", "email": "eric@konklone.com" }, { "name": "Gabriel Barros", "email": "descartavel1@gmail.com" }, { "name": "KevinSheedy", "email": "kevinsheedy@gmail.com" }, { "name": "Aleksey Smolenchuk", "email": "aleksey@uber.com" }, { "name": "Ed Morley", "email": "emorley@mozilla.com" }, { "name": "Blaine Bublitz", "email": "blaine@iceddev.com" }, { "name": "Andrey Fedorov", "email": "anfedorov@gmail.com" }, { "name": "Daijiro Wachi", "email": "daijiro.wachi@gmail.com" }, { "name": "Luc Thevenard", "email": "lucthevenard@gmail.com" }, { "name": "Aria Stewart", "email": "aredridel@nbtsc.org" }, { "name": "Charlie Rudolph", "email": "charles.w.rudolph@gmail.com" }, { "name": "Vladimir Rutsky", "email": "rutsky@users.noreply.github.com" }, { "name": "Isaac Murchie", "email": "isaac@saucelabs.com" }, { "name": "Marcin Wosinek", "email": "marcin.wosinek@gmail.com" }, { "name": "David Marr", "email": "davemarr@gmail.com" }, { "name": "Bryan English", "email": "bryan@bryanenglish.com" }, { "name": "Anthony Zotti", "email": "amZotti@users.noreply.github.com" }, { "name": "Karl Horky", "email": "karl.horky@gmail.com" }, { "name": "Jordan Harband", "email": "ljharb@gmail.com" }, { "name": "Gu冒l(fā)augur Stef謾n Egilsson", "email": "gulli@kolibri.is" }, { "name": "Helge Skogly Holm", "email": "helge.holm@gmail.com" }, { "name": "Peter A. Shevtsov", "email": "petr.shevtsov@gmail.com" }, { "name": "Alain Kalker", "email": "a.c.kalker@gmail.com" }, { "name": "Bryant Williams", "email": "b.n.williams@gmail.com" }, { "name": "Jonas Weber", "email": "github@jonasw.de" }, { "name": "Tim Whidden", "email": "twhid@twhid.com" }, { "name": "Andreas", "email": "functino@users.noreply.github.com" }, { "name": "Karolis Narkevicius", "email": "karolis.n@gmail.com" }, { "name": "Adrian Lynch", "email": "adi_ady_ade@hotmail.com" }, { "name": "Richard Littauer", "email": "richard.littauer@gmail.com" }, { "name": "Oli Evans", "email": "oli@zilla.org.uk" }, { "name": "Matt Brennan", "email": "mattyb1000@gmail.com" }, { "name": "Jeff Barczewski", "email": "jeff.barczewski@gmail.com" }, { "name": "Danny Fritz", "email": "dannyfritz@gmail.com" }, { "name": "Takaya Kobayashi", "email": "jigsaw@live.jp" }, { "name": "Ra"Shaun Stovall", "email": "rashaunstovall@gmail.com" }, { "name": "Julien Meddah", "email": "julien.meddah@deveryware.com" }, { "name": "Michiel Sikma", "email": "michiel@wedemandhtml.com" }, { "name": "Jakob Krigovsky", "email": "jakob.krigovsky@gmail.com" }, { "name": "Charmander", "email": "~@charmander.me" }, { "name": "Erik Wienhold", "email": "git@ewie.name" }, { "name": "James Butler", "email": "james.butler@sandfox.co.uk" }, { "name": "Kevin Kragenbrink", "email": "kevin@gaikai.com" }, { "name": "Arnaud Rinquin", "email": "rinquin.arnaud@gmail.com" }, { "name": "Mike MacCana", "email": "mike.maccana@gmail.com" }, { "name": "Antti Mattila", "email": "anttti@fastmail.fm" }, { "name": "laiso", "email": "laiso@lai.so" }, { "name": "Matt Zorn", "email": "zornme@gmail.com" }, { "name": "Kyle Mitchell", "email": "kyle@kemitchell.com" }, { "name": "Jeremiah Senkpiel", "email": "fishrock123@rocketmail.com" }, { "name": "Michael Klein", "email": "mischkl@users.noreply.github.com" }, { "name": "Simen Bekkhus", "email": "sbekkhus91@gmail.com" }, { "name": "Victor", "email": "victor.shih@gmail.com" }, { "name": "thefourtheye", "email": "thechargingvolcano@gmail.com" }, { "name": "Clay Carpenter", "email": "claycarpenter@gmail.com" }, { "name": "bangbang93", "email": "bangbang93@163.com" }, { "name": "Nick Malaguti", "email": "nmalaguti@palantir.com" }, { "name": "Cedric Nelson", "email": "cedric.nelson@gmail.com" }, { "name": "Kat March謾n", "email": "kzm@sykosomatic.org" }, { "name": "Andrew", "email": "talktome@aboutandrew.co.uk" }, { "name": "Eduardo Pinho", "email": "enet4mikeenet@gmail.com" }, { "name": "Rachel Hutchison", "email": "rhutchix@intel.com" }, { "name": "Ryan Temple", "email": "ryantemple145@gmail.com" }, { "name": "Eugene Sharygin", "email": "eush77@gmail.com" }, { "name": "James Talmage", "email": "james@talmage.io" }, { "name": "jane arc", "email": "jane@uber.com" }, { "name": "Joseph Dykstra", "email": "josephdykstra@gmail.com" }, { "name": "Andrew Crites", "email": "ajcrites@gmail.com" }, { "name": "Joshua Egan", "email": "josh-egan@users.noreply.github.com" }, { "name": "Carlos Alberto", "email": "euprogramador@gmail.com" }, { "name": "Thomas Cort", "email": "thomasc@ssimicro.com" }, { "name": "Thaddee Tyl", "email": "thaddee.tyl@gmail.com" }, { "name": "Steve Klabnik", "email": "steve@steveklabnik.com" }, { "name": "Andrew Murray", "email": "radarhere@gmail.com" }, { "name": "Stephan B枚nnemann", "email": "stephan@excellenteasy.com" }, { "name": "Kyle M. Tarplee", "email": "kyle.tarplee@numerica.us" }, { "name": "Derek Peterson", "email": "derekpetey@gmail.com" }, { "name": "Greg Whiteley", "email": "greg.whiteley@atomos.com" }, { "name": "murgatroid99", "email": "mlumish@google.com" }, { "name": "Marcin Cieslak", "email": "saper@saper.info" }, { "name": "Jo茫o Reis", "email": "reis@janeasystems.com" }, { "name": "Matthew Hasbach", "email": "hasbach.git@gmail.com" }, { "name": "Jon Hall", "email": "jon_hall@outlook.com" }, { "name": "Anna Henningsen", "email": "sqrt@entless.org" }, { "name": "James Treworgy", "email": "jamietre@gmail.com" }, { "name": "James Hartig", "email": "james@levenlabs.com" }, { "name": "Stephanie Snopek", "email": "stephaniesnopek@gmail.com" }, { "name": "Kent C. Dodds", "email": "kent@doddsfamily.us" }, { "name": "Aaron Krause", "email": "aaronjkrause@gmail.com" }, { "name": "Daniel K O"Leary", "email": "daniel@dko.io" }, { "name": "fscherwi", "email": "fscherwi@users.noreply.github.com" }, { "name": "Thomas Reggi", "email": "thomas@reggi.com" }, { "name": "Thomas Michael McTiernan", "email": "thomasmctiernan@gmail.com" }, { "name": "Jason Kurian", "email": "JaKXz@users.noreply.github.com" }, { "name": "Sebastiaan Deckers", "email": "seb@ninja.sg" }, { "name": "lady3bean", "email": "lady3bean@users.noreply.github.com" }, { "name": "Tomi Carr", "email": "TaMe3971@users.noreply.github.com" }, { "name": "Juan Caicedo", "email": "retiredcanadianpoet@gmail.com" }, { "name": "Ashley Williams", "email": "ashley@npmjs.com" }, { "name": "Andrew Marcinkevi膷ius", "email": "andrew.web@ifdattic.com" }, { "name": "Jorrit Schippers", "email": "jorrit@ncode.nl" }, { "name": "Alex Lukin", "email": "alex.lukin@softgrad.com" }, { "name": "Aria Stewart", "email": "aredridel@dinhe.net" }, { "name": "Tiago Rodrigues", "email": "tmcrodrigues@gmail.com" }, { "name": "Tim", "email": "tim-github@baverstock.org.uk" }, { "name": "Nick Williams", "email": "WickyNilliams@users.noreply.github.com" }, { "name": "Louis Larry", "email": "louis.larry@gmail.com" }, { "name": "Ben Gotow", "email": "bengotow@gmail.com" }, { "name": "Jakub Gieryluk", "email": "jakub.g.opensource@gmail.com" }, { "name": "Kevin Lorenz", "email": "mail@kevinlorenz.com" }, { "name": "Martin von Gagern", "email": "Martin.vGagern@gmx.net" }, { "name": "Eymen Gunay", "email": "eymen@egunay.com" }, { "name": "Martin Ek", "email": "mail@ekmartin.com" }, { "name": "Rafa艂 Pocztarski", "email": "r.pocztarski@gmail.com" }, { "name": "Mark Reeder", "email": "mreeder@uber.com" }, { "name": "Chris Rebert", "email": "github@chrisrebert.com" }, { "name": "Scott Addie", "email": "tobias.addie@gmail.com" }, { "name": "Jeff McMahan", "email": "jeffrey.lee.mcmahan@gmail.com" }, { "name": "Tim Krins", "email": "timkrins@gmail.com" }, { "name": "Hal Henke", "email": "halhenke@gmail.com" }, { "name": "Julian Simioni", "email": "julian@simioni.org" }, { "name": "Jimb Esser", "email": "jimb@yahoo-inc.com" }, { "name": "Alexis Campailla", "email": "alexis@janeasystems.com" }, { "name": "Chris Chua", "email": "chris.sirhc@gmail.com" }, { "name": "Beau Gunderson", "email": "beau@beaugunderson.com" }, { "name": "Dave Galbraith", "email": "dave@jut.io" }, { "name": "s100", "email": "shughes1@uk.ibm.com" }, { "name": "Sergey Simonchik", "email": "sergey.simonchik@jetbrains.com" }, { "name": "Vanja Radovanovi膰", "email": "elvanja@gmail.com" }, { "name": "Jonathan Persson", "email": "persson.jonathan@gmail.com" }, { "name": "Vedat Mahir YILMAZ", "email": "mahir@vedatmahir.com" }, { "name": "Samuel Reed", "email": "samuel.trace.reed@gmail.com" }, { "name": "Rafa艂 Legi臋d藕", "email": "rafal.legiedz@gmail.com" }, { "name": "Jan Sch盲r", "email": "jscissr@gmail.com" }, { "name": "Xcat Liu", "email": "xcatliu@gmail.com" }, { "name": "harryh", "email": "Aourin@users.noreply.github.com" }, { "name": "Prayag Verma", "email": "prayag.verma@gmail.com" }, { "name": "Neil Kistner", "email": "neil.kistner@gmail.com" }, { "name": "Zoujie Wzj", "email": "zoujie.wzj@alibaba-inc.com" }, { "name": "Ryan Hendrickson", "email": "ryan.hendrickson@alum.mit.edu" }, { "name": "Arturo Coronel", "email": "aoitsu3@gmail.com" }, { "name": "Hutson Betts", "email": "hbetts@factset.com" }, { "name": "Lewis Cowper", "email": "lewis.cowper@googlemail.com" }, { "name": "Adam Byrne", "email": "misterbyrne@gmail.com" }, { "name": "Ifeanyi Oraelosi", "email": "ifeanyioraelosi@gmail.com" }, { "name": "Robert Ludwig", "email": "rob.ludwig@rideamigos.com" }, { "name": "Chris Warren", "email": "chris@ixalon.net" }, { "name": "Scott Plumlee", "email": "scott@plumlee.org" }, { "name": "Daniel Pedersen", "email": "daniel@scandinav.se" }, { "name": "rhgb", "email": "kaiserdaemon@gmail.com" }, { "name": "doug.wade", "email": "doug.wade@redfin.com" }, { "name": "Zac", "email": "zdoege@gm.slc.edu" }, { "name": "GriffinSchneider", "email": "griffinschneider@gmail.com" }, { "name": "Andres Kalle", "email": "mjomble@gmail.com" }, { "name": "thefourtheye", "email": "thefourtheye@users.noreply.github.com" }, { "name": "Yael", "email": "yaelz@users.noreply.github.com" }, { "name": "Yann Odeyer", "email": "yann@odeyer.com" }, { "name": "James Monger", "email": "jameskmonger@hotmail.co.uk" }, { "name": "Thomas Hallock", "email": "thomas@1stdibs.com" }, { "name": "Paul Irish", "email": "paul.irish@gmail.com" }, { "name": "Paul O"Leary McCann", "email": "polm@dampfkraft.com" }, { "name": "Francis Gulotta", "email": "wizard@roborooter.com" }, { "name": "Felix Rieseberg", "email": "felix@felixrieseberg.com" }, { "name": "Glen Mailer", "email": "glenjamin@gmail.com" }, { "name": "Federico Brigante", "email": "bfred-it@users.noreply.github.com" }, { "name": "Steve Mao", "email": "maochenyan@gmail.com" }, { "name": "Anna Henningsen", "email": "anna@addaleax.net" }, { "name": "Rachel Evans", "email": "git@rve.org.uk" }, { "name": "Sam Minnee", "email": "sam@silverstripe.com" }, { "name": "Zirak", "email": "zirakertan@gmail.com" }, { "name": "Daniel Lupu", "email": "lupu.daniel.f@gmail.com" }, { "name": "Gianluca Casati", "email": "fibo@users.noreply.github.com" }, { "name": "Andr茅 Herculano", "email": "andresilveirah@gmail.com" }, { "name": "Wyatt Preul", "email": "wpreul@gmail.com" }, { "name": "Myles Borins", "email": "mborins@us.ibm.com" }, { "name": "Elliot Lee", "email": "github.public@intelliot.com" }, { "name": "Dmitry Kirilyuk", "email": "gk.joker@gmail.com" }, { "name": "Aaron Tribou", "email": "aaron.tribou@gmail.com" }, { "name": "Tapani Moilanen", "email": "moilanen.tapani@gmail.com" }, { "name": "Han Seoul-Oh", "email": "laughinghan@gmail.com" }, { "name": "Aleksey Shvayka", "email": "shvaikalesh@gmail.com" }, { "name": "Emma Ramirez", "email": "ramirez.emma.g@gmail.com" }, { "name": "Julian Duque", "email": "julianduquej@gmail.com" }, { "name": "Simon MacDonald", "email": "simon.macdonald@gmail.com" }, { "name": "Adam Stankiewicz", "email": "sheerun@sher.pl" }, { "name": "Gregers Gram Rygg", "email": "gregers.gram.rygg@finn.no" }, { "name": "Peter Dave Hello", "email": "hsu@peterdavehello.org" }, { "name": "Jordan Klassen", "email": "forivall@gmail.com" }, { "name": "Jason Palmer", "email": "jason@jason-palmer.com" }, { "name": "Michael Hart", "email": "michael.hart.au@gmail.com" }, { "name": "Sasha Koss", "email": "koss@nocorp.me" }, { "name": "David Emmerson", "email": "david.emmerson@gmail.com" }, { "name": "Christophe Hurpeau", "email": "christophe@hurpeau.com" }, { "name": "Daniel Paz-Soldan", "email": "daniel.pazsoldan@gmail.com" }, { "name": "Sakthipriyan Vairamani", "email": "thechargingvolcano@gmail.com" }, { "name": "Zach Renner", "email": "zarenner@microsoft.com" }, { "name": "Christopher Hiller", "email": "boneskull@boneskull.com" }, { "name": "legodude17", "email": "legodudejb@gmail.com" }, { "name": "Andrew Meyer", "email": "andrewm.bpi@gmail.com" }, { "name": "Michael Jasper", "email": "mdjasper@gmail.com" }, { "name": "Max", "email": "contact@mstoiber.com" }, { "name": "Szymon Nowak", "email": "szimek@gmail.com" }, { "name": "Jason Karns", "email": "jason.karns@gmail.com" }, { "name": "Lucas Holmquist", "email": "lholmqui@redhat.com" }, { "name": "Ionic膬 Biz膬u", "email": "bizauionica@gmail.com" }, { "name": "Alex Chesters", "email": "AlexChesters@users.noreply.github.com" }, { "name": "Robert Gay", "email": "robert.gay@redfin.com" }, { "name": "Steven", "email": "stevokk@hotmail.com" }, { "name": "Tim Caswell", "email": "tim@creationix.com" }, { "name": "Anna Henningsen", "email": "github@addaleax.net" }, { "name": "Kim R酶en", "email": "kim@kimroen.com" }, { "name": "Douglas Wilson", "email": "dougwilson@live.com" }, { "name": "Mike Engel", "email": "mike@mike-engel.com" }, { "name": "baderbuddy", "email": "baderbuddy@gmail.com" }, { "name": "Alex Jordan", "email": "alex@strugee.net" }, { "name": "Ville Lahdenvuo", "email": "tuhoojabotti@gmail.com" }, { "name": "Natalie Wolfe", "email": "nwolfe@newrelic.com" }, { "name": "Andrew Schmadel", "email": "aschmadel@learningobjects.com" }, { "name": "Jonah Moses", "email": "jonahkmoses@gmail.com" }, { "name": "Daijir艒 Wachi", "email": "daijiro.wachi@gmail.com" }, { "name": "Dmitry Litvinchenko", "email": "karaliti@gmail.com" }, { "name": "chocolateboy", "email": "chocolate@cpan.org" }, { "name": "Henry Zhu", "email": "hi@henryzoo.com" }, { "name": "Nate Goldman", "email": "ungoldman@gmail.com" }, { "name": "Ted Yavuzkurt", "email": "hello@TedY.io" }, { "name": "Arseniy Maximov", "email": "localhost@kern0.ru" }, { "name": "Joshua Bennett", "email": "legodude17@users.noreply.github.com" }, { "name": "Evgeny Kulikov", "email": "beyondcompute@users.noreply.github.com" }, { "name": "小瀉芯脅芯褉芯寫邪 袧懈瀉懈褌邪 袗薪寫褉械械脅懈褔", "email": "chalkerx@gmail.com" }, { "name": "Carol", "email": "carol.nichols@gmail.com", "url": "Nichols || Goulding" }, { "name": "Jarid Margolin", "email": "jaridmargolin@gmail.com" }, { "name": "David Cook", "email": "divergentdave@gmail.com" }, { "name": "Brian Dukes", "email": "bdukes@engagesoftware.com" }, { "name": "J F", "email": "git@twopointzero.us" }, { "name": "Pavlo Liulia", "email": "pavloblack@hotmail.com" }, { "name": "J謾n Dzurek", "email": "famousgarkin@outlook.com" }, { "name": "Lucas Theisen", "email": "ltheisen@mitre.org" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com" }, { "name": "钖涘畾璋旂殑鐚?", "email": "hh_2013@foxmail.com" }, { "name": "Pawe艂 Lula", "email": "pavloblack@hotmail.com" }, { "name": "Jakob Krigovsky", "email": "jakob@krigovsky.com" }, { "name": "George Rawlinson", "email": "george@rawlinson.net.nz" }, { "name": "Jack Nagel", "email": "jacknagel@users.noreply.github.com" }, { "name": "Andreas Kohn", "email": "andreas.kohn@gmail.com" }, { "name": "Jason Wohlgemuth", "email": "jhwohlgemuth@users.noreply.github.com" }, { "name": "Ryan Graham", "email": "r.m.graham@gmail.com" }, { "name": "Hirse", "email": "jan.pilzer@gmx.de" }, { "name": "Colin Rotherham", "email": "work@colinr.com" }, { "name": "Aki", "email": "hi@akiro.se" }, { "name": "Emily Marigold Klassen", "email": "forivall@gmail.com" }, { "name": "Ramana Venkata", "email": "idlike2dream@gmail.com" }, { "name": "kierendixon", "email": "knitesoulja@hotmail.com" }, { "name": "R謾cz Tibor Zolt謾n", "email": "racztiborzoltan@gmail.com" }, { "name": "Guangcong Luo", "email": "guangcongluo@gmail.com" }, { "name": "Steven", "email": "steven@ceriously.com" }, { "name": "Jan Pilzer", "email": "jan.pilzer@gmx.de" }, { "name": "Leonard Martin", "email": "leonard.martin@gmail.com" }, { "name": "Teddy Katz", "email": "teddy.katz@gmail.com" }, { "name": "Simon Legg", "email": "leggsimon@gmail.com" }, { "name": "Kin Lum", "email": "kenneth.kin.lum@gmail.com" }, { "name": "dax", "email": "guido.dassori@gmail.com" }, { "name": "Jo啪e Mlakar", "email": "JozeM@ixtlan-team.si" }, { "name": "happylynx", "email": "happylynx@users.noreply.github.com" }, { "name": "Dominic Watson", "email": "intellix@users.noreply.github.com" }, { "name": "Enrico Weigelt, metux IT consult", "email": "enrico.weigelt@gr13.net" }, { "name": "Brian Beck", "email": "exogen@gmail.com" }, { "name": "Ramana Venkata", "email": "vramana@users.noreply.github.com" }, { "name": "mmkal", "email": "misha.kaletsky@gmail.com" }, { "name": "Andrew Schmadel", "email": "schmod@users.noreply.github.com" }, { "name": "AJ Jordan", "email": "alex@strugee.net" }, { "name": "Mark Banner", "email": "standard8@mozilla.com" }, { "name": "Richard Simko", "email": "richardsimko@users.noreply.github.com" }, { "name": "Sanketh Katta", "email": "sankethkatta@gmail.com" }, { "name": "Tim Needham", "email": "tim.needham@wmfs.net" }, { "name": "leonardo rojas", "email": "leonardo.rojas@shopify.com" }, { "name": "Mark Peter Fejes", "email": "fejes.mark@gmail.com" } ], "man": [ "/Users/zkat/Documents/code/npm/man/man1/npm-access.1", "/Users/zkat/Documents/code/npm/man/man1/npm-adduser.1", "/Users/zkat/Documents/code/npm/man/man1/npm-bin.1", "/Users/zkat/Documents/code/npm/man/man1/npm-bugs.1", "/Users/zkat/Documents/code/npm/man/man1/npm-build.1", "/Users/zkat/Documents/code/npm/man/man1/npm-bundle.1", "/Users/zkat/Documents/code/npm/man/man1/npm-cache.1", "/Users/zkat/Documents/code/npm/man/man1/npm-completion.1", "/Users/zkat/Documents/code/npm/man/man1/npm-config.1", "/Users/zkat/Documents/code/npm/man/man1/npm-dedupe.1", "/Users/zkat/Documents/code/npm/man/man1/npm-deprecate.1", "/Users/zkat/Documents/code/npm/man/man1/npm-dist-tag.1", "/Users/zkat/Documents/code/npm/man/man1/npm-docs.1", "/Users/zkat/Documents/code/npm/man/man1/npm-doctor.1", "/Users/zkat/Documents/code/npm/man/man1/npm-edit.1", "/Users/zkat/Documents/code/npm/man/man1/npm-explore.1", "/Users/zkat/Documents/code/npm/man/man1/npm-help-search.1", "/Users/zkat/Documents/code/npm/man/man1/npm-help.1", "/Users/zkat/Documents/code/npm/man/man1/npm-init.1", "/Users/zkat/Documents/code/npm/man/man1/npm-install-test.1", "/Users/zkat/Documents/code/npm/man/man1/npm-install.1", "/Users/zkat/Documents/code/npm/man/man1/npm-link.1", "/Users/zkat/Documents/code/npm/man/man1/npm-logout.1", "/Users/zkat/Documents/code/npm/man/man1/npm-ls.1", "/Users/zkat/Documents/code/npm/man/man1/npm-outdated.1", "/Users/zkat/Documents/code/npm/man/man1/npm-owner.1", "/Users/zkat/Documents/code/npm/man/man1/npm-pack.1", "/Users/zkat/Documents/code/npm/man/man1/npm-ping.1", "/Users/zkat/Documents/code/npm/man/man1/npm-prefix.1", "/Users/zkat/Documents/code/npm/man/man1/npm-prune.1", "/Users/zkat/Documents/code/npm/man/man1/npm-publish.1", "/Users/zkat/Documents/code/npm/man/man1/npm-README.1", "/Users/zkat/Documents/code/npm/man/man1/npm-rebuild.1", "/Users/zkat/Documents/code/npm/man/man1/npm-repo.1", "/Users/zkat/Documents/code/npm/man/man1/npm-restart.1", "/Users/zkat/Documents/code/npm/man/man1/npm-root.1", "/Users/zkat/Documents/code/npm/man/man1/npm-run-script.1", "/Users/zkat/Documents/code/npm/man/man1/npm-search.1", "/Users/zkat/Documents/code/npm/man/man1/npm-shrinkwrap.1", "/Users/zkat/Documents/code/npm/man/man1/npm-star.1", "/Users/zkat/Documents/code/npm/man/man1/npm-stars.1", "/Users/zkat/Documents/code/npm/man/man1/npm-start.1", "/Users/zkat/Documents/code/npm/man/man1/npm-stop.1", "/Users/zkat/Documents/code/npm/man/man1/npm-team.1", "/Users/zkat/Documents/code/npm/man/man1/npm-test.1", "/Users/zkat/Documents/code/npm/man/man1/npm-uninstall.1", "/Users/zkat/Documents/code/npm/man/man1/npm-unpublish.1", "/Users/zkat/Documents/code/npm/man/man1/npm-update.1", "/Users/zkat/Documents/code/npm/man/man1/npm-version.1", "/Users/zkat/Documents/code/npm/man/man1/npm-view.1", "/Users/zkat/Documents/code/npm/man/man1/npm-whoami.1", "/Users/zkat/Documents/code/npm/man/man1/npm.1", "/Users/zkat/Documents/code/npm/man/man1/npx.1", "/Users/zkat/Documents/code/npm/man/man5/npm-folders.5", "/Users/zkat/Documents/code/npm/man/man5/npm-global.5", "/Users/zkat/Documents/code/npm/man/man5/npm-json.5", "/Users/zkat/Documents/code/npm/man/man5/npm-package-locks.5", "/Users/zkat/Documents/code/npm/man/man5/npm-shrinkwrap.json.5", "/Users/zkat/Documents/code/npm/man/man5/npmrc.5", "/Users/zkat/Documents/code/npm/man/man5/package-lock.json.5", "/Users/zkat/Documents/code/npm/man/man5/package.json.5", "/Users/zkat/Documents/code/npm/man/man7/npm-coding-style.7", "/Users/zkat/Documents/code/npm/man/man7/npm-config.7", "/Users/zkat/Documents/code/npm/man/man7/npm-developers.7", "/Users/zkat/Documents/code/npm/man/man7/npm-disputes.7", "/Users/zkat/Documents/code/npm/man/man7/npm-index.7", "/Users/zkat/Documents/code/npm/man/man7/npm-orgs.7", "/Users/zkat/Documents/code/npm/man/man7/npm-registry.7", "/Users/zkat/Documents/code/npm/man/man7/npm-scope.7", "/Users/zkat/Documents/code/npm/man/man7/npm-scripts.7", "/Users/zkat/Documents/code/npm/man/man7/removing-npm.7", "/Users/zkat/Documents/code/npm/man/man7/semver.7" ], "gitHead": "75b462c19ea16ef0d7f943f94ff4d255695a5c0d", "_id": "npm@5.3.0", "_npmVersion": "5.3.0", "_nodeVersion": "8.1.2", "_npmUser": { "name": "zkat", "email": "kat@sykosomatic.org" }, "dist": { "integrity": "sha512-ZJsOWVJ25E2C5Qedf4w9ePIv5hrPCdDIsHhq89tRxSJCqyIfDAMh0KoU9xeTu7yHT9ZrxPF7mopq1TCWxtMfkw==", "shasum": "e2ae85ef09d53f7f570a05578692899bf7879f17", "tarball": "https://registry.npmjs.org/npm/-/npm-5.3.0.tgz" }, "maintainers": [ { "email": "ceejceej@gmail.com", "name": "ceejbot" }, { "email": "kat@sykosomatic.org", "name": "zkat" }, { "email": "me@re-becca.org", "name": "iarna" }, { "email": "i@izs.me", "name": "isaacs" } ], "_npmOperationalInternal": { "host": "s3://npm-registry-packages", "tmp": "tmp/npm-5.3.0.tgz_1500009133941_0.17611657408997416" } }
這個(gè)會(huì)比較大,看一個(gè)簡(jiǎn)單的縮影:
{ "name": "algorithms-combined-js", "version": "1.0.1", "description": "algorithms for combined", "main": "libs/index.js", "scripts": { "build":"babel src -d libs", "prepublish":"npm run build", "test": "echo "Error: no test specified" && exit 1" }, "repository": { "type": "git", "url": "git+https://github.com/rawbin-/algorithms-combined-js.git" }, "keywords": [ "algorithms", "javascript", "combination", "arrangement" ], "author": "rawbin-", "license": "ISC", "bugs": { "url": "https://github.com/rawbin-/algorithms-combined-js/issues" }, "homepage": "https://github.com/rawbin-/algorithms-combined-js#readme", "devDependencies": { "babel-cli": "^6.18.0", "babel-preset-es2015": "^6.18.0", "babel-preset-stage-0": "^6.16.0" }, "dependencies": { "underscore": "^1.8.3" } }版本
作為包管理工具,最為重要的就是版本管理,版本管理主要在package.json里面體現(xiàn)在一下幾種書寫方式:
使用> >= < <= = 和 ||來(lái)組合具體范圍 1.2.7 || >=1.2.9 <2.0.0
使用-來(lái)指定范圍 1.2.3 - 2.3.4 等于 >=1.2.3 <=2.3.4
使用x X * 或者 留空 來(lái)指定版本通配 1.x 等于 >=1.0.0 <2.0.0
使用~來(lái)指定最鄰近右邊的大版本范圍,放開小版本的變更
~1.2.3 := >=1.2.3 <1.(2+1).0 := >=1.2.3 <1.3.0
~1.2 := >=1.2.0 <1.(2+1).0 := >=1.2.0 <1.3.0 (Same as 1.2.x)
~1 := >=1.0.0 <(1+1).0.0 := >=1.0.0 <2.0.0 (Same as 1.x)
~0.2.3 := >=0.2.3 <0.(2+1).0 := >=0.2.3 <0.3.0
~0.2 := >=0.2.0 <0.(2+1).0 := >=0.2.0 <0.3.0 (Same as 0.2.x)
~0 := >=0.0.0 <(0+1).0.0 := >=0.0.0 <1.0.0 (Same as 0.x)
使用^來(lái)限定最左邊的大版本
^1.2.3 := >=1.2.3 <2.0.0
^0.2.3 := >=0.2.3 <0.3.0
^0.0.3 := >=0.0.3 <0.0.4
scripts 配置使用npm能運(yùn)行的腳本的命令,npm 允許在package.json文件里面,使用scripts字段定義腳本命令。這個(gè)字段的內(nèi)容比較豐富,也經(jīng)常用到:
prepublish publish postpublish
preinstall install postinstall
preuninstall uninstall postuninstall
preversion version postversion
pretest test posttest
prestop stop poststop
prestart start poststart
prerestart restart postrestart
任意命令的運(yùn)行方式為npm run scriptname,特殊的start stop restart test 可以直接用npm scriptname來(lái)運(yùn)行,
script部分可以參考看:http://www.ruanyifeng.com/blo...
常用命令npm i xxx -g === npm install xxx --global
npm i xxx -S === npm install xxx --save
npm i xxx -D === npm install xxx --save-dev
npm un xxx === npm uninstall xxx
npm ls /查看安裝的包
npm clean --force //強(qiáng)制清理安裝的包
npm publish xxx
npm unpublish xxx
設(shè)置源有的時(shí)候可能會(huì)出現(xiàn)安裝一些包的時(shí)候特別慢,所以需要設(shè)置一下國(guó)內(nèi)的源,最為通用的就是taobao的源,也可是使用其配置的npm別名cnpm,只不過是npm直接把源設(shè)置為國(guó)內(nèi)的淘寶源,使用方法:
//設(shè)置別名,注意區(qū)分自己的終端是bash還是zsh alias cnpm="npm --registry=https://registry.npm.taobao.org --cache=$HOME/.npm/.cache/cnpm --disturl=https://npm.taobao.org/dist --userconfig=$HOME/.cnpmrc" # Or alias it in .bashrc or .zshrc $ echo " #alias for cnpm alias cnpm="npm --registry=https://registry.npm.taobao.org --cache=$HOME/.npm/.cache/cnpm --disturl=https://npm.taobao.org/dist --userconfig=$HOME/.cnpmrc"" >> ~/.zshrc && source ~/.zshrc
臨時(shí)性的:
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm config set registry http://registry.cnpmjs.org
//配置指向源 npm config set registry https://registry.npm.taobao.org
永久性:
registry =https://registry.npm.taobao.org //寫入配置文件~/.npmrc
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/84121.html
摘要:博客地址這篇文章是我在眾成翻譯翻譯的一篇文章,一篇的入門指南,原文鏈接的出現(xiàn)使得用寫服務(wù)端應(yīng)用成為可能。你可以看到,這個(gè)過程也安裝了其他的模塊,它們都是的所依賴的模塊。但是,得到的輸出信息會(huì)很冗長(zhǎng),我們可以加上來(lái)精簡(jiǎn)一下輸出。 github 博客地址: https://github.com/zengxiaota... 這篇文章是我在 眾成翻譯 翻譯的一篇文章,一篇 npm 的入門指南,...
摘要:什么是讀音,類似于是一套用于構(gòu)建用戶界面的漸進(jìn)式框架。的核心庫(kù)只關(guān)注視圖層,不僅易于上手,還便于與第三方庫(kù)或既有項(xiàng)目整合。 什么是vue.js Vue (讀音 /vju?/,類似于 view) 是一套用于構(gòu)建用戶界面的漸進(jìn)式框架。與其它大型框架不同的是,Vue 被設(shè)計(jì)為可以自底向上逐層應(yīng)用。Vue 的核心庫(kù)只關(guān)注視圖層,不僅易于上手,還便于與第三方庫(kù)或既有項(xiàng)目整合。另一方面,當(dāng)與現(xiàn)代化...
摘要:從到完美,寫一個(gè)庫(kù)庫(kù)前端組件庫(kù)之前講了很多關(guān)于項(xiàng)目工程化前端架構(gòu)前端構(gòu)建等方面的技術(shù),這次說說怎么寫一個(gè)完美的第三方庫(kù)。使用導(dǎo)出模塊,就可以在使用這個(gè)庫(kù)的項(xiàng)目中構(gòu)建時(shí)使用功能。 從 1 到完美,寫一個(gè) js 庫(kù)、node 庫(kù)、前端組件庫(kù) 之前講了很多關(guān)于項(xiàng)目工程化、前端架構(gòu)、前端構(gòu)建等方面的技術(shù),這次說說怎么寫一個(gè)完美的第三方庫(kù)。 1. 選擇合適的規(guī)范來(lái)寫代碼 js 模塊化的發(fā)展大致有...
摘要:從到完美,寫一個(gè)庫(kù)庫(kù)前端組件庫(kù)之前講了很多關(guān)于項(xiàng)目工程化前端架構(gòu)前端構(gòu)建等方面的技術(shù),這次說說怎么寫一個(gè)完美的第三方庫(kù)。使用導(dǎo)出模塊,就可以在使用這個(gè)庫(kù)的項(xiàng)目中構(gòu)建時(shí)使用功能。 從 1 到完美,寫一個(gè) js 庫(kù)、node 庫(kù)、前端組件庫(kù) 之前講了很多關(guān)于項(xiàng)目工程化、前端架構(gòu)、前端構(gòu)建等方面的技術(shù),這次說說怎么寫一個(gè)完美的第三方庫(kù)。 1. 選擇合適的規(guī)范來(lái)寫代碼 js 模塊化的發(fā)展大致有...
摘要:的官方下載地址點(diǎn)我進(jìn)入的官方下載地址下載電腦系統(tǒng)對(duì)應(yīng)文件,然后進(jìn)行安裝,安裝成功之后通過命令行工具進(jìn)入安裝目錄。注系統(tǒng)命令行工具通過開始菜單輸入打開,系統(tǒng)為終端。 showImg(https://segmentfault.com/img/bVPL6q?w=200&h=200); Vue — 漸進(jìn)式 JavaScript 框架 介紹 Vue.js 是什么 vue.js 是一套構(gòu)建用戶界面...
摘要:的官方下載地址點(diǎn)我進(jìn)入的官方下載地址下載電腦系統(tǒng)對(duì)應(yīng)文件,然后進(jìn)行安裝,安裝成功之后通過命令行工具進(jìn)入安裝目錄。注系統(tǒng)命令行工具通過開始菜單輸入打開,系統(tǒng)為終端。 showImg(https://segmentfault.com/img/bVPL6q?w=200&h=200); Vue — 漸進(jìn)式 JavaScript 框架 介紹 Vue.js 是什么 vue.js 是一套構(gòu)建用戶界面...
閱讀 1496·2021-10-11 10:59
閱讀 1857·2021-09-09 11:36
閱讀 1370·2019-08-30 15:55
閱讀 1322·2019-08-29 11:20
閱讀 3057·2019-08-26 13:39
閱讀 1458·2019-08-26 13:37
閱讀 1951·2019-08-26 12:11
閱讀 1313·2019-08-23 14:28