NPM学习笔记
NPM:
node package manager,node包的管理工具。用Node.js编写的,使用前需要先安装Node.js。
安装NPM
方法一:安装Node.js(LTS版本),会同时安装npm
方法二: 通过NVM(Node Version Manage,节点版本管理器)安装Node.js和npm
package.json文件
- 列出了项目所依赖的软件包
- 允许使用“semantic versioning rules”规则指定项目可以使用的软件包的版本
- 使构建具有可复制性,更易于与其他开发人员共享
要求:
一个package.json文件必须有:
- "name"
- 只能用小写字母
- 至少一个字,不能有空格
- 允许使用破折号和下划线
- "version"
- 格式为x.x.x
- 遵循semver规范
创建:
方式一:npm init (以询问的方式依次初始化各配置项)
方式二:npm init --yes 或 npm init -y (从当前目录提前的信息来生成默认值)
注意:
如果没有设置“description”的值,npm将使用README.md文件的第一行作为值。(便于在npm上的搜索)
为init命令设置几个配置选项:
npm set init.author.email "uakora96@gmail.com"
npm set init.author.name "uakora"
npm set init.license "MIT"
自定义package.json文件初始化时的问题:在主目录下创建自定义文件npm-init.js文件...
指定依赖项:
- "dependencies":用于生产环境的软件包
- "devDependencies":用于开发和测试的软件包
--save 和 --save-dev:
npm install <package_name> --save (只写入"dependencies"中,同默认)
npm install <package_name> --save-dev (只写入"devDependencies"中)
包
安装包
npm install [-g] <package_name>
- 如果模块依赖某个包,并通过Node.js的require加载,那么应该选择本地安装
- 如果想将包作为一个命令行工具,比如grunt CLI,那么应该选择全局安装
说明:执行上述命令后,会在目录下创建一个node_modules的目录(如果不存在的话)
更新包
npm update [-g] [package_name]
说明:
1. 不指定包名,将更新所有包
2. 更新之前,可通过执行 npm outdated [-g] 查看已有新版本的包
3. npm outdated -g --depth=0 (查看需要更新的包)
卸载包
npm uninstall [-g] [package_name]
npm uninstall *
说明:
1. 在使用npm 6.13.4版时,不需要添加 --save 或 --save-dev参数,package.json中的依赖也会同时删除。
发布包
步骤一:登录:npm login(没有账号,需先创建账号npm adduser)
步骤二:测试是否已登录:npm whoiam (非必须)
步骤三:确认包是否无误
步骤四:发布:npm publish
更新自己发布的包:
更新版本号:npm version <update_type>
更新README.md文件:npm version patch
最后执行 npm publish
语义化版本(Semantic versioning, Semver)
CODE STATUS | STAGE | RULE | EXAMPLE # |
First Release | New Product | Start with 1.0.0 | 1.0.0 |
Bug fixes, other minor changes | Patch Release(补丁版本) | Increment the third digit | 1.0.1 |
New Features that don't break existing features | Minor Release(次要版本) | Increment the middle digit | 1.1.0 |
Changes that break backward compatibility | Major Release(主要版本) | Increment the first digit | 2.0.0 |
####
####
示例,如果软件包从1.0.4开始,指定范围的方式:
- 补丁版本:1.0 或 1.0.x 或 ~1.0.4
- 次要版本:1 或 1.x 或 ^1.0.4
- 主要版本:* 或 x
作用域包(Scoped Packages)
以@开头的包为作用域包,作用域是@与斜杆之间的内容。
相关命令:
npm init --scope=<username>
npm config set scope <username>
npm publish --access=public (默认,作用域包是私有的,非免费的,在发布时需要设置访问选项为public)
使用作用域包
要使用有作用域的程序包,只需在使用程序包名称的任何地方都包括作用域。
分发标签(dist-tags)
添加标签
npm dist-tag add <pkg>@<version> [<tag>]
使用标签发布(eg:发布带有beta标签的软件包)
npm publish --tag beta
使用标签安装
npm install <pkg>@<tag> (eg:npm install somepkg@beta)
Security tokens
相关命令:
查看:npm token list
新建:npm token create [--read-only] [cidr=list]
删除:npm token delete [id]
配置文件
相关命令:
获取:npm profile get
设置:npm profile set <pro> <value>
清除缓存
npm cache verify
npm cache clean --force