npm & cnpm

本文共--字 阅读约--分钟 | 浏览: -- Last Updated: 2022-07-12

npm

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

npm命令

  • npm -v 来测试是否成功安装
  • 查看当前目录已安装插件:npm list
  • 更新全部插件: npm update [ --save-dev ]
  • 使用 npm 更新对应插件: npm update <name> [ -g ] [ --save-dev]
  • 使用 npm 卸载插件: npm uninstall <name> [ -g ] [ --save-dev ]
  • npm 查看所有全局配置: npm config ls
  • npm 查看配置: npm config get $key, $key为对应配置项

npm代理相关命令

# 设置代理配置
npm config set proxy http://yourip:yourport

# 或者具体一点 也可以是http-proxy
npm config set https-proxy http://yourip:yourport

# 查看代理配置
npm config get proxy

# 删除代理配置
npm config delete proxy|http-proxy|https-proxy

npm缓存相关命令

# 将指定的包添加到本地缓存
npm cache add <package>

# 通过缓存的所有数据在插入和提取时都经过完整性验证。缓存损坏将触发错误,或发出pacote必须重新获取数据的信号 
# 所以常带上 --force 用来强制清除 回收磁盘空间
# 删除缓存文件夹中的所有数据 
npm cache clean
# aliases: npm cache clear, npm cache rm

# 验证缓存文件夹的内容,垃圾收集任何不需要的数据,并验证缓存索引和所有缓存数据的完整性。
npm cache verify

npm锁定安装包的版本

# 主要版本.次要版本.小版本

# 默认是 ^ 锁定主要版本
# 安装包的时候锁定包的主要版本+次要版本
npm config set save-prefix '~'

# 不使用前缀,保存确切版本
npm config set save-exact true

# 或者在.npmrc中加入 save-exact=true

cnpm

  • 淘宝团队做的国内镜像,因为npm的服务器位于国外可能会影响安装。淘宝镜像与官方同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
  • 安装:命令提示符执行 npm install cnpm -g --registry=https://registry.npm.taobao.org
  • cnpm -v 来测试是否成功安装

通过改变地址来使用淘宝镜像

  • npm的默认地址是https://registry.npmjs.org/
  • 可以使用npm config get registry查看npm的仓库地址
  • 可以使用npm config set registry https://registry.npm.taobao.org来改变默认下载地址,达到可以不安装cnpm就能采用淘宝镜像的目的,然后使用上面的get命令查看是否成功。

nrm

  • nrm包安装命令: npm i nrm -g
  • nrm能够管理所用可用的镜像源地址以及当前所使用的镜像源地址,但是只是单纯的提供了几个url并能够让我们在这几个地址之间方便切换
  • nrm ls即nrm list,查看所有可用的镜像,并可以切换。*号表示当前npm使用的地址,可以使用命令nrm use taobaonrm use npm来进行两者之间的切换。

-g -S -D

  • -g:全局安装。 将会安装在C:\Users\Administrator\AppData\Roaming\npm并且写入系统环境变量,在MacOS上的路径是/usr/local/lib/node_modules;非全局安装:将会安装在当前定位目录;全局安装可以通过命令行任何地方调用它,本地安装将安装在定位目录的node_modules文件夹下,只能在该定位目录下调用,有些带命令行的包只能通过定义在package.json中的scripts字段,通过npm run来执行,另外一种方法就是直接使用npx

  • -S :即npm install module_name --save,写入package.jsondependencies ,dependencies 是需要发布到生产环境的,比如jq,vue全家桶,ele-ui等ui框架这些项目运行时必须使用到的插件就需要放到dependencies

  • -D :即npm install module_name --save-dev ,写入package.jsondevDependencies ,devDependencies 里面的插件只用于开发环境,不用于生产环境。比如一些babel编译功能的插件、webpack打包插件就是开发时候的需要,真正程序打包跑起来并不需要的一些插件。