资讯专栏INFORMATION COLUMN

node包管理工具npm的更多用法

go4it / 2833人阅读

摘要:的包管理工具现在的火热程度一点都没有下降,而成为了前端必备工具,特别是的包库已经成为了前端必备的,即使你不接触作为后端的存在,现在各种第三方包依然需要使用来管理,可以说一个现代化的前段工程如果不使用类似这样的包管理工具的话,应该不算一个大型

node的包管理工具npm

node现在的火热程度一点都没有下降,而成为了前端必备工具,特别是npm的包库已经成为了前端必备的,即使你不接触node作为后端的存在,现在各种第三方包依然需要使用npm来管理,可以说一个现代化的前段工程如果不使用类似npm这样的包管理工具的话,应该不算一个大型工程。

npm使用

官方网站:https://docs.npmjs.com/ ,npm的安装什么的就不说了,node的大部分版本也都自带了npm,npm管理者node的大部分包,开发者可以上传自己写的包供他人使用,也可以下载使用别人写好的包进行使用,
使用npm init 来进行初始化一个项目,会生成一个package.json文件,而版本管理就依赖这个文件,官方给的样例文件:

{
"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冒laugur 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"
}
}

这个会比较大,看一个简单的缩影:

  {
      "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里面体现在一下几种书写方式:

使用> >= < <= = 和 ||来组合具体范围 1.2.7 || >=1.2.9 <2.0.0

使用-来指定范围 1.2.3 - 2.3.4 等于 >=1.2.3 <=2.3.4

使用x X * 或者 留空 来指定版本通配 1.x 等于 >=1.0.0 <2.0.0

使用~来指定最邻近右边的大版本范围,放开小版本的变更
~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)

使用^来限定最左边的大版本
^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

script

scripts 配置使用npm能运行的脚本的命令,npm 允许在package.json文件里面,使用scripts字段定义脚本命令。这个字段的内容比较丰富,也经常用到:

prepublish publish postpublish

preinstall install postinstall

preuninstall uninstall postuninstall

preversion version postversion

pretest test posttest

prestop stop poststop

prestart start poststart

prerestart restart postrestart

任意命令的运行方式为npm run scriptname,特殊的start stop restart test 可以直接用npm scriptname来运行,

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 //强制清理安装的包

npm publish xxx

npm unpublish xxx

设置源

有的时候可能会出现安装一些包的时候特别慢,所以需要设置一下国内的源,最为通用的就是taobao的源,也可是使用其配置的npm别名cnpm,只不过是npm直接把源设置为国内的淘宝源,使用方法:

//设置别名,注意区分自己的终端是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

临时性的:

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84121.html

相关文章

  • [译]npm入门指南

    摘要:博客地址这篇文章是我在众成翻译翻译的一篇文章,一篇的入门指南,原文链接的出现使得用写服务端应用成为可能。你可以看到,这个过程也安装了其他的模块,它们都是的所依赖的模块。但是,得到的输出信息会很冗长,我们可以加上来精简一下输出。 github 博客地址: https://github.com/zengxiaota... 这篇文章是我在 众成翻译 翻译的一篇文章,一篇 npm 的入门指南,...

    mrcode 评论0 收藏0
  • Vue项目构建

    摘要:什么是读音,类似于是一套用于构建用户界面的渐进式框架。的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 什么是vue.js Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化...

    LittleLiByte 评论0 收藏0
  • 从 1 到完美,写一个 js 库、node 库、前端组件库

    摘要:从到完美,写一个库库前端组件库之前讲了很多关于项目工程化前端架构前端构建等方面的技术,这次说说怎么写一个完美的第三方库。使用导出模块,就可以在使用这个库的项目中构建时使用功能。 从 1 到完美,写一个 js 库、node 库、前端组件库 之前讲了很多关于项目工程化、前端架构、前端构建等方面的技术,这次说说怎么写一个完美的第三方库。 1. 选择合适的规范来写代码 js 模块化的发展大致有...

    rollback 评论0 收藏0
  • 从 1 到完美,写一个 js 库、node 库、前端组件库

    摘要:从到完美,写一个库库前端组件库之前讲了很多关于项目工程化前端架构前端构建等方面的技术,这次说说怎么写一个完美的第三方库。使用导出模块,就可以在使用这个库的项目中构建时使用功能。 从 1 到完美,写一个 js 库、node 库、前端组件库 之前讲了很多关于项目工程化、前端架构、前端构建等方面的技术,这次说说怎么写一个完美的第三方库。 1. 选择合适的规范来写代码 js 模块化的发展大致有...

    xiaolinbang 评论0 收藏0
  • Vue.js 2.0 轻松入门(一)

    摘要:的官方下载地址点我进入的官方下载地址下载电脑系统对应文件,然后进行安装,安装成功之后通过命令行工具进入安装目录。注系统命令行工具通过开始菜单输入打开,系统为终端。 showImg(https://segmentfault.com/img/bVPL6q?w=200&h=200); Vue — 渐进式 JavaScript 框架 介绍 Vue.js 是什么 vue.js 是一套构建用户界面...

    617035918 评论0 收藏0
  • Vue.js 2.0 轻松入门(一)

    摘要:的官方下载地址点我进入的官方下载地址下载电脑系统对应文件,然后进行安装,安装成功之后通过命令行工具进入安装目录。注系统命令行工具通过开始菜单输入打开,系统为终端。 showImg(https://segmentfault.com/img/bVPL6q?w=200&h=200); Vue — 渐进式 JavaScript 框架 介绍 Vue.js 是什么 vue.js 是一套构建用户界面...

    mmy123456 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<