npm模块安装机制简介
npm是node的模块管理器,功能及其强大,它是node获得成功的重要原因之一。
正因为有了nom,我们只要一行命令,就能安装别人写好的模块。
$ npm install
本文介绍npm模块安装机制的细节,以及如何解决安装速度慢的问题
一。从npm install说起
npm install 命令用来安装模块到node_modules目录;
$ npm install <packageName>
安装之前,npm install 会先检查,node_modules中是否已经存在指定模块,如果存在,就不重新安装了,即使远程仓库已经有了一个新版本,也是如此。
如果你希望,一个模块不管是否安装过,npm都要强制重新安装,可以用 -f 或 -force 参数
$ npm install <packageName> --force
二。npm update
如果想更新已安装模块,就要用到 npm update 命令
$ npm update <packageName>
它会先到远程仓库查询最新版本,然后查询本地版本,如果本地版本不存在,或者远程版本较新,就会安装。
三。registry
npm update 命令是怎么知道每个模块的最新版本呢?
答案是npm模块仓库提供了一个查询服务,叫做regisrty,以 npmjs.org 为例,它的查询服务网址是 https://registry.npmjs.org/
。
这个网址后面跟上模块名,就会得到一个JSON对象,里面是该模块所有版本信息,比如,访问https://registry.npmjs.org/react,就会看到 react 模块所有版本的信息。
它跟下面命令的效果是一样的。
$ npm view react # npm view 的别名
$ npm info react
$ npm show react
$ npm v react
registry 网址的模块名后面,还可以跟上版本号或标签,用来查询某个具体版本的信息,比如,访问 https://registry.npmjs.org/react/v0.14.6 ,就可以看到 react 的0.14.6版本
返回的JSON对象里面,有一个dist.tarball属性,是该版本压缩包的网址
dist: {
shasum: '2a57c2cf8747b483759ad8de0fa47fb0c5cf5c6a',
tarball: 'http://registry.npmjs.org/react/-/react-0.14.6.tgz'
},
到这个网址下载压缩包,在本地解压,就得到了模块的源码,npm install
和npm update
命令,都是通过这种方式安装模块的。
四,缓存目录
npm install 或 npm update 命令,从 registry 下载压缩包之后,都存放在本地的缓存目录
这个缓存目录,在Linux或Mac默认是用户主目录下的.npm
目录,在 Windows 默认是%AppData%/npm-cache
。通过配置命令,可以查看这个目录的具体位置。
$ npm config get cache
$HOME/.npm
npm模块安装机制简介的更多相关文章
- [转] npm 模块安装机制简介
npm 是 Node 的模块管理器,功能极其强大.它是 Node 获得成功的重要原因之一. 正因为有了npm,我们只要一行命令,就能安装别人写好的模块 . $ npm install 本文介绍 npm ...
- npm 模块安装机制简介
npm 是 Node 的模块管理器,功能极其强大.它是 Node 获得成功的重要原因之一. 正因为有了npm,我们只要一行命令,就能安装别人写好的模块 . $ npm install 本文介绍 npm ...
- 介绍下 npm 模块安装机制,为什么输入 npm install 就可以自动安装对应的模块?
1. npm 模块安装机制: 发出npm install命令 查询node_modules目录之中是否已经存在指定模块 若存在,不再重新安装 若不存在 npm 向 registry 查询模块压缩包的网 ...
- npm模块安装机制
npm 是 Node 的模块管理器,功能极其强大.它是 Node 获得成功的重要原因之一.正因为有了npm,我们只要一行命令:npm install,就能安装别人写好的模块 . 一.从 npm ins ...
- 详解npm的模块安装机制 --社会我npm哥,好用话不多
依赖树表面的逻辑结构与依赖树真实的物理结构 依赖树表面的逻辑结构与依赖树真实的物理结构并不一定相同! 这里要先提到两个命令:tree -d(linux)和npm ls(npm) 在一个npm项目下 ...
- 【npm】详解npm的模块安装机制
依赖树表面的逻辑结构与依赖树真实的物理结构 依赖树表面的逻辑结构与依赖树真实的物理结构并不一定相同! 这里要先提到两个命令:tree -d(linux)和npm ls(npm) 在一个npm项目下 ...
- 详解npm的模块安装机制
详解npm的模块安装机制 依赖树表面的逻辑结构与依赖树真实的物理结构 依赖树表面的逻辑结构与依赖树真实的物理结构并不一定相同! 这里要先提到两个命令:tree -d(linux)和npm ls(npm ...
- 4.npm模块安装和使用(axios异步请求,lodash工具库)
建立package.json npm init 下载包 npm install axios npm install lodash 下载包,并加到package里面 npm install axios ...
- 在Windows平台上安装Node.js及NPM模块管理
1. 下载Node.js官方Windows版程序:http://nodejs.org/#download 从0.6.1开始,Node.js在Windows平台上提供了两种安装方式,一是.MSI安 ...
随机推荐
- 天梯赛L3-001. 凑零钱(01背包记录物品)
L3-001. 凑零钱 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现 ...
- POJ - 1458 Common Subsequence DP最长公共子序列(LCS)
Common Subsequence A subsequence of a given sequence is the given sequence with some elements (possi ...
- OVN学习(一)
参考文档 OVN学习系列参考博文 部署OVN实验环境 网络拓扑 ### Central节点 # cat ifcfg-ens3 TYPE=Ethernet BOOTPROTO=static DEFROU ...
- 计蒜课/UCloud 的安全秘钥(hash)
题目链接:https://nanti.jisuanke.com/t/15768 题意:中文题诶- 思路:直接hash就好了,当时zz了没想到... 代码: #include <iostream& ...
- [Xcode 实际操作]七、文件与数据-(10)NSkeyedArchiver存储和解析数据,Swift对象的归档和恢复归档
目录:[Swift]Xcode实际操作 本文将演示如何使用归档的方法,对模型对象进行持久化工作. 在项目名称上点击鼠标右键,弹出右键菜单,选择[New File]新建文件命令, 在弹出的模板选项窗口中 ...
- Codeforces #564div2 E1(记忆化搜索)
虽然不是正解但毕竟自己做出来了还是记下来吧- 对每个人分别dfs得到其期望,某两维的组合情况有限所以Hash一下避免了MLE. #include <cstdio> #include < ...
- mac下配置php+mysql+nginx遇到的问题
1.mysql:没有useradd和groupadd命令,好在原来的/etc/passwd有了mysql,www用户,/etc/group下也有了mysql,www用户组 2.nginx:编译ngin ...
- Net Core 分布式微服务框架
Jimu : .Net Core 分布式微服务框架介绍 https://www.cnblogs.com/grissom007/p/9291345.html 一.前言 近些年一直浸淫在 .Net 平台做 ...
- mongodb 分片技术
MongoDB Sharding Cluster 分片集群 规划:10个实例:38017-38026 (1)configserver:3台构成的复制集(1主两从,不支持arbiter)38018-38 ...
- stm32的低功耗模式:
一.待机模式.待机模式是低功耗中最低功耗的,内部电压调节电路被关闭, HSE.HIS.PLL被关闭:进入待机模式后,SRAM和寄存器的内容将丢失. (CPU停止,外设停止,RAM的数据寄存器的内容 ...