npm install
安装一个包
概要
npm install (with no args, in package dir)
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
npm install <alias>@npm:<name>
npm install <git-host>:<git-user>/<repo-name>
npm install <git repo url>
npm install <tarball file>
npm install <tarball url>
npm install <folder>
aliases: npm i, npm add
common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run]
描述
此命令安装一个包,以及它所依赖的任何包。如果包有 package-lock 或 shrinkwrap 文件,依赖项的安装将由它驱动,如果两个文件都存在,则 npm-shrinkwrap.json
优先。见 package-lock.json 和 npm shrinkwrap
。
一个package
是:
- a) 包含由
package.json
文件描述的程序的文件夹 - b) 一个 gzipped tarball,包含 (a)
- c) 解析为 (b) 的 url
- d) 在注册表上发布的
<name>@<version>
(参见registry
),带有 (c) - e) 指向 (d) 的
<name>@<tag>
(见npm dist-tag
) - f) 具有满足 (e) 的 "latest" 标签的
<name>
- g) 解决为 (a) 的
<git remote url>
即使你从不发布你的包,如果你只是想写一个 node 程序(a),你仍然可以获得使用 npm 的很多好处,也许你还想在打包后能够轻松地安装它成一个 tarball (b)。
- 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
npm install sax@">=0.1.0 <0.2.0" bench supervisor
CS98uyOhQq6i3SFTrG8mliBjk3aq/b/qfA83oJN2eoVI9/xvU4+0NOKhT6PvGSVCnuSqUjY2NmMVR+XP5dnZldtN/flohyzewIfQyEVHWFCJ0so/X8L/9Y4ai0av9Tu/eFc26n4g4IUag9lxftGzaA8jCzL8DU4odbcgYENQvtumY3tq22LqOB/SOn2NBfmVAdlXahfA6rL3TJgf0UNcRw==
BDCxAcmIfJx294iaL+mzhqD251XyhW4UJxOPuKfG903nYYcIbDe3yo7fSkxW439dljvymrHM2ujnNk1h3BPO7/daJRIgjHN6RD61gCQhEMSqbzXOVQBdwyVXjGmhfGmG2L22goeO2Q63GcfvxvyhTT+sNTjK4DE4/GeeAUeH3C4KUX7pWaIfIugWmZTQnONS
jW4Jp6K5n08D1MYIB7o0A4Ug9ALCUEGa9uFPCGOEt+pvz3mRkAs6FrDv9bpnwEJv3uO2kWD+jGBjvl17AYYXgDO31fz2r26FOLN6kkkWe0xqVVfLQdL0WzHjRvA47FH8BIJnZkgLdCmIah3AtwE2FA9z6A9ovhis4oL8VdbRHOoMJlF4lKXyGr6CrdD87y7ok6gkMtW77kFE/7ObDIoBAg==
ucR4YyDgRnVUfWyZLLoJwUKRb0GXCJD+OgV2JrC0zaSPyD1vkLxZkuZJVy6vvW0RZBsBuOxnXlpSmlwvWx65YDn81CvloPLv31Dkk9svzi/ggcpsV2DkJJIRzeaMF7xk7cI5OctoKpBs/dKglotQAc9r/ta7Elwc/+3GK2u5smU=
npm install sax --force
2eUSoh3oVaWf/64ejcK64VZv3xw0XHZpt6gw2Nv+ZIKnSXFXhcwQxEAFROP44S0dzZCwJKosX7hziBD8TsjcBFTl7G+cDucF24VfGavEwv9kKyYhC3kc2Sym0T7vvYFeikoET0a4J/Kmct1wXxdPtVm+kYQTPuJ0KR9Mj1/ho7yH3mOyYuEdvc1mUlD0qI6CSZEpvWOjl5jynOhTK7JGCV7UL/LlrsfVJ32GAo1u4zY=
/5+teHQxUiJWqVE0q9/IdHzj9VP6mMVulpR7KXpNpBT3SyAqGqXnRzppoyOAY7ZSdTWAZq45hTGuIYFQEwONcQMZmW3kXdL4BTrM/9j5OoFDH9mdsvv+163Vp1YK/2ysvq+hdbFxUFUSDMZh2UwNBQ1P9JdnB/Vm9/P7H6zW5cWMhl4RaLMlxi05bb4vD3Mk6fKywSMNXLdY1VJI+YYsZXy5NaHXRlAwvHKhxWK+bOU=
FwOsmrckm9vqFlT96nVMh0EfUVxP8/yNopt4sLxkZNuCXJ3UvLa+60TdtaZXCe+hTJbMB0qtHOV2tuf5U73aYN8Enb/MaLU3j2Ivn1rShqal6UZnBg2ty0AQDFp9mPd9hxPr7JqJfEDq1+HhKClbRXizdHeDJBqrZbYo0p/dS2KN6OjtxrZ92n8nKsxZh4LNVRt8lErDYs5fTz1emXpH2j8gnJxUYkPYXAn3UMKXKMEZDaQXj9YELEDVlEeDy18XqypQE8nbHxh172Q45XJEwfoakBNmHwb6WJq/O7R70jZflnyLgJC9tiZo6diya46Rbk1TlRoO5WUguCGEg87+V8IqSwvj6SJ66to4bm/DuBXJm0O69E4GSIcf/HegsQ+E17syXBbuo3aSMzvFT/1EanNMfSYLxm4HvBnjq1Tl7rKrle9JOu56aAsx+qCZSexUdvMa3ZDJqO38B57wdDW6kZiHhkTOLNGosRgy1dnierL0gX96JkW5PgzSkDxmnNy2IN7UZvl6sgibemRO/usz3A==
Z/DNt/vCMI9q2ADl5vBqlGSyulKaBE9drcBq66aEJbdRzvDfTfGsdCDuxwUCqS3rZqGsLUiryGVF6mPI1vhinK0rgC97Uh+p+aZJmiicEOSbbdOr8Zh49VWaEdwaH38kiSdMEHhyFys8cBI0ezmon3yjmcX2zrp6NRMRR9cMqfTSyQHPyoGseUrBNe1hv9u7IMw1htEDEECB5AaOYM30rXJ7wv/EleF0MNunxhcmbO8VdA5l7EchtFEXyq8tSDy/
XC2nGawuIgcjzLxwd9Bn3Y/k3MYpkDBbp3pwbvA6ncV3G04t4MfoKasqEFt13nxjnIUld305Zdg/wKy0sKAx5mqCmyMzwyWEiNL2jV+sXS1wqKl3+Up34KIgeU9GKJUk8OYEjLXjnSehIQod03ql8rc2rN3WhZ4UjYJmn7fnjoLBKETYcXN41DO2jpufQn7rj1UQkqitwppdtXdOlJ3n9hJToD9l3pfVDtdQ10B4mcVXylJzBoSr8Mg1Wd2HvMY2nofNC5Rg3ZVkA0/gqHKRZw==
+HHc9dS1Vq+1m6X+WdRT8jp+oHsUCf0rl1xXvZ33Tq0404uDqi1iFV5WPt2Daav4ZRoDOsOXft+sAAcmsJGqmevlS8Y9wBXVtXXvDGajeWkWy7CmQOvyQcs3nWuTgxYqZZY4u3Y1TW8BGX/Rrcuw7A==
EWEwHBSJQ0McaBIdiRyzPIh8uj+mYkKJQp4bcvtM1jtpe7a1vwMpv9rJkUbByvTEvV6+/45whd4PVlbqDyn8q91B1nPND3qX/L9nEAHYF4PQ5wcTjT03Kous7IziMNb9qWzV59jy7sDUgoYL3Fn/4g==
CIasJPdh1duy1CMBTpNLLnRGNkpn+evx29m81dJrrow3VlH6vLterI6z0GpNM4hof1iReMWvoIAK1C0+ijTVUtQY3/at6KOdp+unBMUyLlE=
OZwrpH8fTl6NP2utDvNB49uyhaWhxzffrOHH4jiUPguWrCh0Bq38V3Cecw0HYpvWv8vyI/MzHmU06wyG7j/UH71H7ol3it/0bYQ99hQn4UOcZusgbj49PzX92G6edbghLqIVanbZjUuLA3jNt4hCsthFxsyr3ejCf3zhGgku2bc=
2oTBXfJxbfAlYcgljYxIYtF18d1sY29GETjIU/b3tUi9NHu6uFF3RABp/C7d3x0giQYfe/sbLu7VNpYMRUQd2lK3ZdT1Z06k2VSaamR+aDXKntcA8yFMjanmTVydgzXv1kW0PoLFqocy/kQv2hhBXvTpl7wB6vtduG15Jmv+VqOpOMKnQiFREOMo7X5C4Loo+QuvuKsFId7kXqyz+nXnVwa6OFQLwK/jJfefWqm2u0YQaa6CRvz6Vul+UiltYhtt3b3cnVeGXUgQL7SO7MGeaQ==
TfKtueTvHuJR/jvolGTlGMd0sridckqnnfbgYrLYTDHbxFQR0DaFZAacYRIZcM25UKPO20/0IBmnIBbyHX315mQlJnjyzPm9XSkj3hKNAIwdWR1JAqatVkXGwZq2sLltN22ViuT6TqvzJlaSIsBLeME+k5LPllFMmsdda+oMWmg=
0uA0mGXce3duuE8KaSEkB5aKm9nEIs+cKQUoNCbwvTCdNWVKBdC7qKrReyUOQmrm+/POHzbdTQSdEUpnLYoSecqACvNvY3PDFggJ1VDWWYYKIPZ1QRDlh7h3Hv7DcO0T/4HHsGIoRp4k+mdUixliL8/9POMejCESKJecz115cfCfhM0MzpE6ycVVY9zLdIZ2jgVrFqXMQEiajj+CP0FZuUeJD1hCObimS2UQ6HYEbNuDXy7MQ0WR05lWGGiXBQwH
BonZ3m+mvceKEEB7KpZNEWavb52pQOFsHYF6lodXHXCbZPWm0UgpbS04d9B4cNasCot4AQDFuYAZgpa5mMS5bRybnlpd32Z7UGP851KA7Y/QbyxEPD1E+VOQneWMZzBPP8NW62jlqfKGzrW4P7tegoMoBIyRoBceTCzGYiaEvBnqzP1zp3lSobJwnnfPzQGyGWlh6pCeH9uXg/cUEZ/iBcq0W68Fo4VLog1SJAuFAIJdsG+80Xwqs59k5ekBJdboQ8v5R+Qmqb+dtDCbJpe3Rg==
vPoST36+zIbYR7iIlbatzSq31GrpKflc4yz5lvDcYmvk2cR140hGgO4/zELQPdMwhnX5umgvXmnnJPek5Jq6a38aptW40JPO+3Q3GJr5fWeatZzS6kUHRn4ud0llCjVBFepkbAnRcmT9z/EM0Y8Sa8loStFHN0eVXklb0LqYX22GMe9zPeJGc60CvR989485yzGi0FR0ZBkoklYb7UGOrVas9cr1fmEJSaEkA8Z9AWs=
算法
122DCd6koLMupqqmS4c2Zkx91voXXgeopasNyRmOh23KqKbOyzWJ0aOhFRKKMxiOk8R9KwUZ/vdD8SPhpV5OtA==
load the existing node_modules tree from disk
clone the tree
fetch the package.json and assorted metadata and add it to the clone
walk the clone and add any missing dependencies
dependencies will be added as close to the top as is possible
without breaking any other modules
compare the original tree with the cloned tree and make a list of
actions to take to convert one to the other
execute all of the actions, deepest first
kinds of actions are install, update, remove and move
NlGqMk8O3XYvqK48pyPW4qJNsRZkNG2y/wG3Tm3BiLLcoPTmIBkaEZtpz5SIURMiOfstTkJvOsH/3A82/+I7wtzakJ5rdZIkHm1/udf3hiM3bZzS9UFdqXE/CHuKcjP3iNf+WGcDcTbTT0GBfCU1/A==
A
+-- B
+-- C
+-- D
GnVLRCmSQLnJgqtLaWXj8t73FDMW+hLNCEl7yFx5b/l/eMDwVZ4WfrLk5AUtovc3svmsQgZp9eXYDqM4OBOPbNM9Mvy7NrexfeZgZ2YtQby7AWMLUEVMpB3fHCAtTfcoh+GuFuFH6/+Zc7m2jkYlN9e2o4P4r3Emdxf2i/2VTlwkDpaw9rJQGbpuh/qXFpXK/voo/QV8ZDWBQkPA7gsayAaNlAQEmucOKIvWgK6ihlE=
AQO/+9dkWeCVbkFhygVcr11662elADd05BYkuZYyMEjJo32eJo3aGH5uTWOqnZIYNMX2JuijGavjRFBGghUkwBp8e6FWr7zpSd4C7rA6uB4=
A
+-- B
+-- C
`-- D@2
+-- D@1
tBFTqfaAQeWlQstC5O4g6bzpVRQ2kgTIHuIldfNAi9EslW9PtBBVVAbDFrGVWLqxQJVh1REE6z27a38uugjd4Qu9ub3hEyvg64dUkJe9oCUzS+P5BL9DeKE21pkEgdbkrqCaPfZR1O5yauDlNNzNYsb7z9GpXWRJSTdLk7r4kIvXJSLmwCLLqjbHQZ0lsQLZlAJFnDFUDPAh47ZFoPJpnzjTeFaaVhfEJ412uKMSmF+5fYmCiPtLiNBVezTcaXzXLy8ADcni3LlnRGqLl5e0Yg==
VnHa/lkzY/PjT1UjCQ4LQc7aQjiAcAkPoS4TTwf8wtLqAKQ/MlMnx4K1aDfioadXdl5Xq9CNd6FNcaiFdZlVfYBNmrop2yI4hfpe4QZD4SKJdoxKLl0DATSZ+7v4JcsamEcbgqTFYB3SmlqzzevxsklwleeySwNGvzRXHGhnlods1LxFuaeq6DQjeB+nkjzb
npm 安装算法的限制
mSUgh+fVtZdBtMp/DiIB3LONViPabDGFlQXA3489B7xALGw6YtoCvZtCKdNdJbLyOVUhXvOuUms0pQHHhlFbl7QsryRYemi2eRlMZZovLsZEck+qG/90rgebs2vBXQuZLIORO7/gTPOauRYY1iaqsN31qBHrLrT4fOeG97dl0dF5KsmQSswe4SkvLm5n6lgJNAymHGyWgbOyTPILdMwWXuAvRtRpD+fZjqJfVqVyDQh6vLwmwraNG5M+pZaZNU4v
lHqUbqcCaqOR54z7znZ7nGHkkVjT89QTmpdpTxmQj/MdcFBfEiR2PMIln9EeAVhjNuBFV0tvD85x8Q3iHQ02IS4hF9q1wrVPW3mockNN+A3bPFT3LhraQogtQvpGlNO3xcwsQYAHk0wViptcuyy63dRP8wtWdPmKI9qsMpQVnxXSTs6yh8m9OJuoA3BeYjqihE66bPmiVeceZMn5iKOkgQ==
A -> B -> A' -> B' -> A -> B -> A' -> B' -> A -> ...
DoKw6C95w9KQ80pA2X4dOcwqIIiOEfGs/szkEZShuziKE3zIAU1e96jG5gxB31chTZ7hEsFtFttyaAsYn18ifJTKHISthQHoWwmev2RX43eEzUFpvl/KmNXSg65twRv2WIsUOvC9HXYOUqfPXHo+BkJKdbyxKxEx9aLX3ShGY2p5dY6OF8emuBYIt4fXAb1oD5K46+ZNwyxCXakFkNB4vxVvmuvJwtUZ8jUjWkwlpDufHIz+A9ZKy83k4WuZ9iR13dYYXScpPGeS2dVNB7Jps2LIRjD0UP1/BHOKM2BAjKCkcVyXwOXBJyH34tb3MbwtNBsczcoWn3aCt4UAgUcAKfGb0yiAg2il0//nR3qlBWyHshNawK5OODijzQ/mljGW4qdDmwxxJutd1YMct0XHcGWP2rbWsoX0GhQDdfCtsPGH/aoGvZIxLaQnpZaIb4hL91t2sl6ArRmlR49CO0TjjsKBYRE7soyakoJkaSg+RvMXDKSZ6OzOaMmhscAyIL+wWk8KyPkH1qfa3oc+XXlJqD6Le3WYGqufhTqgpWnTLDU=
COKilDLvBWgytJv9u91PciEV//REUUZPJBCFIXknUwaJrP6CVoEMo6IMWydNd3gO1vu2xCMTACHRfewp1/lwAGxyiHGTS7lnOL4hyk6jVxf4+FI2hKNTvBXeDuc+9HHGYxkfKl0Obl3Swkr3o0SmPfcDxpU190S7d+dBUsuxx4rROeOlpA46Ay1Ep5QfVV+yRCq3TmhEGh2YeET5RmehGCGgdlJecQeNl8eCma2XDZKyAGIAA5pQbRDaoO1JKN5TUJM3wOoRxGdiZ3Kq2Lfz6R3R90iSo2Y6mB8OPzKbVp+ZL5oyAbd5xdyRS5qgudXQRxmSg7b5xPvEhlesFuatTbD+pyNvJZLF5/XqxQK3kR/fjsXfyLJaiYYWAGKn/Omd