npm版本控制

包的语义化版本规范,点分十进制形式定义,总共个3位数字。如:1.14.51。

第一位数字:大版本

第二位数字:功能版本

第三位数字:Bug修复版本

版本号提升规则:当前一位版本号增加,后面位数都归零。

包管理配置文件

package.json配置文件,位于项目根目录。

记录项目名称、版本号、描述。

记录项目中使用了哪些包。

记录哪些包只在开发期间使用。

记录哪些包在开发和部署时都需要用到。

快速新建包配置文件

1
npm init -y

根目录注意事项

目录文件夹避免使用中文和空格。

dependencies节点

用于记录使用npm i命令安装的包的信息。

使用包配置文件恢复包

直接执行npm i

devDependencies节点

安装的包仅在开发阶段使用

1
2
npm i --save-dev 包名
npm i -D 包名

卸载第三方包

1
npm uninstall 包名

npm换源(淘宝源)

检查当前下包镜像源

1
npm config get registry

设置镜像源

1
npm config set registry https://registry.npm.taobao.org

检查镜像源是否下载成功

1
npm config get registry

使用nrm小工具

nrm可以快速查看和更换下载源。

1
2
3
4
5
6
#安装nrm
npm i nrm -g
#列出所有可用镜像源
nrm ls
#切换镜像源
nrm use taobao

全局包

使用-g参数,进行安装。

一般会被安装在C:\Users\ 用户目录 \AppData\Roaming\npm\node_modules

1
npm i 包名 -g

如果要卸载全局包,也需要添加-g参数。

规范的包结构

  1. 包必须以单独的目录存在。
  2. 包的顶级目录下必须要包含package.json文件。
  3. 包配置文件中必须包含main、name、version这三个属性,分别代表包的入口、包名、版本号。

创建自己的包

  1. 新建包文件夹

  2. 新建包配置文件package.json、包的入口文件index.js、包的说明文件README.md

  3. 初始化package.json

    包含nameversonmaindescriptionkeywordslicense等属性。

    name属性唯一。

    license为提供的开源协议,推荐ISC

    如下例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    {
    "name": "moment",
    "version": "2.29.4",
    "description": "Parse, validate, manipulate, and display dates",
    "homepage": "https://momentjs.com",
    "author": "Iskren Ivov Chernev <iskren.chernev@gmail.com> (https://github.com/ichernev)",
    "contributors": [
    "Tim Wood <washwithcare@gmail.com> (http://timwoodcreates.com/)",
    ...
    "Andre Polykanine <andre@oire.org> (https://github.com/oire)"
    ],
    "keywords": [
    "moment",
    ...
    ],
    "main": "./moment.js",
    ...
    }
  4. 注册npm账号

  5. 登录账号

1
2
#注意要切换到官方镜像
npm login
  1. 切换到自己的包的根目录,发布包
1
npm publish
  1. 删除已发布的包

只能删除72小时内的包。

删除包后,24小时内不能再发布新的包。

1
npm unpublish 包名 --force 

设置全局安装的默认目录

1
npm config set prefix "nodejs的安装目录"

问题

npm WARN deprecated 14 packages are looking for funding run npm fund for details URL using bad/illegal format or missing URL

可以直接去项目的.git目录,查看config文件中url路径是不是写错了