NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
本文记录一下常用的使用方式。
查看npm版本
npm -v
升级npm版本
npm install npm -g
安装第三方模块
npm install <Module Name>
如果安装的时候报错npm resource busy or locked的话,可以用以下代码清理一下缓存。
npm cache clean
查看安装信息
可以使用以下命令来查看所有全局安装的模块:
npm ls
查看某个模块的版本号
npm list <Module Name>
卸载模块
我们可以使用以下命令来卸载模块。
npm uninstall <Module Name>
更新模块
我们可以使用以下命令更新模块:
npm update <Module Name>
搜索模块
使用以下来搜索模块:
npm search <Module Name>
本地安装与全局安装
npm 的包安装分为本地安装(local)、全局安装(global)两种:
npm install <Module Name> # 本地安装 npm install <Module Name> -g # 全局安装
本地安装
相比于Python,第三方库默认安装到Python安装目录下的site-packages文件夹下,一次安装重复使用的特点来说,Node.js则是各个工程相对独立,默认采用本地安装方式将需要的库安装到工程的node_modules文件夹(需要先cd到工程目录)下,然后通过 require() 来引入本地安装的包。
这样做的优点是方便整理工程和迁移部署。
全局安装
全局安装则可以将第三方库安装到指定位置,默认是/usr/local (windows下是C:\Users\用户名\AppData\Roaming\npm\node_modules)。
如果需要修改默认安装位置,可以用以下代码修改:
npm config set prefix "D:/npm"
修改下载时的缓存位置如下:
npm config set cache "D:/npmcache"
全局安装的话可以直接在命令行里使用。
如果希望具备两者功能,则需要在两个地方安装它或使用 npm link
。
版本号
使用NPM下载和发布代码时都会接触到版本号。NPM使用语义版本号来管理代码,这里简单介绍一下。
语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
- 如果只是修复bug,需要更新Z位。
- 如果是新增了功能,但是向下兼容,需要更新Y位。
- 如果有大变动,向下不兼容,需要更新X位。
版本号有了这个保证后,在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范围的版本号。例如”argv”: “0.0.x”表示依赖于0.0.x系列的最新版argv。
使用npm安装指定版本库
npm install <Module Name>@1.0.1
package.json和package-lock.json
package.json 位于工程和包的目录下,用于定义包的属性,包含了包名、包版本号、描述、作者、依赖包等内容。
package-lock.json位于工程目录下,用于记录工程中直接和间接(依赖包的依赖包)用到的所有包的包名、具体版本号(package.json中存储的是最低版本号,例如”^4.1.1″,那么根据package.json进行部署会安装4大版本下最高小版本,而根据package-lock.json可以直接安装4.1.1版本,避免可能的兼容性问题)、包下载地址(可以自动记录当前使用的镜像站地址,避免再单独设置镜像地址)等等。
npm使用代理
设置代理
npm config set proxy=http://127.0.0.1:8080
取消代理
npm config delete proxy
使用NPM 镜像
国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用第三方NPM 镜像。
例如使用淘宝的镜像:
npm install <Module Name> --registry=https://registry.npm.taobao.org
可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
npm install cnpm --registry=https://registry.npm.taobao.org
这样就可以使用 cnpm 命令来安装模块了:
cnpm install <Module Name>
永久修改npm镜像地址
如果想要永久更改npm的镜像站点地址的话可以通过修改npm配置文件的方法:
npm config set registry https://registry.npm.taobao.org
取消镜像配置:
npm config delete registry
转载自菜鸟教程,有修改。
自我若是软弱无力,
再多的自由又有何用?
埃里克·霍弗
评论
I will immediately grab your rss feed as I can’t find your email subscription link or e-newsletter service. Do you’ve any? Please let me know so that I could subscribe. Thanks.
https://uweed.ch
Prodentim: What is it? Some of the finest and highest quality ingredients are used to produce Prodentim, an oral health supplement
https://youtu.be/Y3hqDWcnkO4
I do trust all of the ideas you’ve introduced on your post. They are very convincing and will certainly work. Nonetheless, the posts are too short for starters. May just you please extend them a bit from next time? Thanks for the post.
https://uweed.fr/blog/cbd-conduite-police-et-controle-routier/
Java Burn is the world’s first and only 100 safe and proprietary formula designed to boost the speed and efficiency of your metabolism by mixing with the natural ingredients in coffee.
https://youtu.be/n4LdBSqj4ss