主要是记录一下当前对npm的理解,以后可以根据对npm的深入理解,不断补充
什么是npm
npm是一个包管理工具,由于新版本的nodejs已经集成了npm工具,npm是随着nodejs而安装的。
- npm可以下载第三方的包或命令程序到本地使用
- npm可以上传自己的包或命令程序到npm服务器供别人使用
npm服务器:包括官网的npm服务器,或者企业私人搭建的nexus服务器等。
一般官网的npm服务器可以供所有人使用,而企业的可能只允许具有该服务器权限的人可以上传或下载。
一般情况下,我们默认具有的是下载的权限。
- 针对企业服务器,需要知道下载的服务器地址,上传可能需要找服务器管理员申请权限,并不是具有对应的账号密码就是就具有了上传的权限,需要具有添加npm包的权限,或者更新/删除权限 。
- 针对官网服务器,默认具有下载权限,而如果你想向官网上传个人的命令程序或包,则只需要到官网注册获取账号即可。
npm方便了我们对通用功能/组件等的管理,用好了可以大大的提升我们的代码效率。
以下是一些常用命令,如需查看所有内容,请到npm中文网查看详细内容,官网的介绍非常详细,对于使用者来说,是一个非常好的api说明文档,结构清晰,容易理解
类似工具
感觉类似的工具有yarn
区别:
通过yarn安装,会直接安装相关的依赖项
npm的常用命令
一般方括号的内容是可选的,有的是命令的缩写,用哪个都可以;有的是选项有没有都可以;有的是动态名称是不固定的值
查看所有命令
与npm help [command-name] 不同,查看所有命令是在终端打印所有的命令,而npm help [command-name] 是浏览器中打开对应的说明文档
在浏览器中打开命令说明文档
- 在浏览器中打开config命令的说明文档 npm config help
- 在浏览器中打开 [command-name] 命令的说明文档 npm help [command-name]
配置 npm
相关配置可以在.npmrc文件中查看
默认全局配置文件 c:/用户/用户名/.npmc
全局缓存 cache
- 设置全局的缓存位置 npm [config] set cache
- 获取全局的缓存位置 npm [config] get cache
- 清除缓存 npm cache clean [-f] (可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人)
全局安装位置 prefix
- 设置全局的安装位置 npm [config] set prefix [path]
- 获取全局的安装位置 npm [config] get prefix
源或者镜像 register
- npm [config] get register 获取当前源
- npm [config] set register register-URL设置源
仅仅更改源 npm config set registry https://registry.npm.taobao.org
更改命令行与源 npm install -g cnpm --registry=https://registry.npm.taobao.org
该方式是安装了cnpm 命令工具,之后可以使用 cnpm 命令
推荐使用非官方的镜像,一般官方镜像的网速不如淘宝镜像等
但是对于源的使用一般推荐nrm,工具包nrm是一个源的管理工具,方便对源进行切换,可以全局安装nrm方便源的控制,可以通过nrm命令添加/删除源,
nrm只是切换了源,但是并没有更改命令行,之后的命令仍旧使用npm
包或命令行的操作
参数选项
- –save 是本地安装,安装到 dependency
- –save–dev 是本地安装,安装到 devDependency
- -D 是本地安装,安装到 devDependency
如果对位置有要求,不论是安装还是卸载需要对应的参数
安装 install
-
全局安装 npm install [package-name] -g
-
本地安装 npm install [package-name]
-
初始化当前目录当前下的packag.json npm install
卸载 uninstall
- 全局卸载 npm uninstall [package-name] -g
- 本地卸载 npm uninstall [package-name]
更新 update [package-name]
- 全局更新 npm update [package-name] -g
- 本地更新 npm update [package-name]
检索 search [package-name]
- 全局检索 npm search [package-name] -g
- 本地检索 npm search [package-name]
列表 list
- 全局安装包列表 npm [list|ls] -g
- 当前目录下安装包列表 npm [list|ls]
- 查看全局安装目录下某个模块的版本号 npm [list|ls] [package-name]
- 查看当前目录下某个模块的版本号 npm [list|ls] [package-name]
npm包或命令行发布
发布最重要的是先设置源,以下命令会针对设置的当前源进行
登录 login
- npm login
登陆到指定的源服务器,默认是登陆到官网服务器,如果登陆私库等其他服务器需要设置登陆的源register
注册 adduser
发布 publish
- npm publish
用于上传包或命令程序,一般登陆成功之后才可以上传
删除撤销发布 unpublish
- npm unpublish [package]@[version]
用于上传包或命令程序,一般登陆成功之后才可以上传
npm init
主要是用于生成package.json文件
在package.json所在目录下使用npm install . -g可先在本地安装当前命令行程序,可用于发布前的本地测试。