文章目录
npm是什么?
它是世界上最大的软件注册表,由三部分组成:
- 网站(
website
):开发者查找包、设置参数以及管理npm使用体验的主要途径 - 注册表(
registry
):一个巨大的数据库,保存了每个package的信息 - 命令行工具(
CLI
):通过命令或终端运行,开发者通过CLI与npm打交道
作用
- 使用软件包适应应用程序,或按原样合并
- 下载立即使用的独立工具
- 运行软件包而不是npx下载
- 与任何npm用户再任何地方共享代码
- 将代码限制为特定开发人员
- 组件虚拟团队
- 基础代码更新时,可以轻松更新应用程序
- 发现解决同一难题的多种方法
- 查找正在解决类似问题的其他开发人员
安装npm
- npm是由
Node.js
编写的,可以通过安装node.js安装npm - npm更新命令:
- 经过测试版本:
npm install npm@latest -g
- 将来发布版本:
npm install npm@next -g
- 经过测试版本:
安装本地包
使用install
命令,详细文件查看命令
篇
使用Package.json
- 要求:必须具备
name
和version
属性 - 创建package.json命令:
npm init
- 创建默认值的package.json命令:
npm init --yes
- 详解介绍查看
配置篇
更新本地安装包
命令:npm update。详细文档查看命令篇
卸载本地包
命令:npm uninstall。详细文档查看命令篇
安装全局包
命令:npm install -g 。详细文档查看命令篇
更新全局包
命令:npm update -g。详细文档查看命令篇
卸载全局包
命令:npm uninstall -g。详细文档查看命令篇
创建Node.js模块
exports对象导出,在其他文件中require这个包,调用其中的方法
发布更新程序包
发布命令:npm publish。详细文档查看命令篇
更新命令:npm version <update_type>。详细文档查看命令篇
- 注意:需在发布之前登录npm,更新版本后需再次publish
使用语义化版本
版本号:主要版本.次要版本.补丁版本,如1.0.0
作用域包
- 包名以@开头,是具有作用域的包
- 初始化作用域包:npm init --scope=name
- 发布作用域包:npm punlish --access=public
- 使用作用域包
- 在package.json中添加依赖
- npm install
- require
分发标签
- 作用
- 补充了语义版本控制。组织和标记不同版本的软件包
- 添加标签
- npm dist-tag add <package>@<version> [<tag>]
- 使用标签发布
- npm punlish --tag beta
- 使用标签安装
- npm install somepkg@beta
- 注意
- 防止标签名称冲突,避免使用以
数字或字母V开头
的标签
- 防止标签名称冲突,避免使用以
双重身份验证(2FA)
- 两种方法
- 用户名和密码、手机或电脑
- 认证等级
- auth-only:可以登录和删除2FA
- auth-and-wirtes:可以登录、修改个人资料、创建或撤销令牌、发布包、更改访问、更改密码、对软件包进行命该访问、删除2FA
- 添加OTP(一次性密码)
npm onwer add <uers> --opt=123456
- 启用2FA
- npm profile enable-2fa
- npm profile enable-2fa auth-only
- npm profile enable-2fa auth-and-writes
- 确认已设置2F命令
- npm profile get
- 启用2FA设置文件
- npm profile set [key] [value]
- 删除2FA
- npm profile disable-2fa
- 命令行发送OPT值
- 开启2FA后,在命令行后面添加 --opt=123456
安全令牌
- 令牌会对账户进行身份认证,并授予发布和访问模块的权限
- 作用
- 查看令牌以简化跟踪和管理
- 创建新令牌,指定只读或完全权限
- 删除/撤销令牌
- 根据IP地址范围(CIDR)限制访问
- 查看令牌
- npm token list
- 创建新令牌
- npm token create [–read-only] [–cidr=list]
- 删除令牌
- npm token delete 令牌ID
更改配置文件
- 查看配置
- npm profile get
- 修改配置
- npm profile set <prop> <value>
软件包和模块
- package
- a)包含package.json文件描述的程序的文件夹
- b)包含(a)的压缩tarball
- c)解析为(b)的网址
- d)<name>@<version>用<c>在注册表发布的A
- e)<name>@<tag>指向(d)的A
- f)<name>,其具有lastest满足标签(e)
- g)git克隆后得到(a)的URL。
- module
- 具有package.json包含main字段的文件的文件夹
- 包含index.js文件的文件夹
- js文件