package.json

package.json 是一个基于 JSON 格式的文件

  • name:包的名称

  • version:包版本号。格式为 主版本号.次版本号.修订号

  • private:是否私有。发布npm时将其设置为false

  • author:项目的作者信息。

  • contributes:项目贡献者

  • keywords:包的关键词

  • description:项目的简要描述

  • main:指定 CommonJS模块或 ES模块入口文件

  • module:指定ES模块入口文件

  • scripts:用于定义运行命令的脚本

  • dependencies:项目依赖的生产环境包

  • devDependencies:项目依赖的开发环境包

  • peerDependencies:对等依赖包。

  • sideEffects:用于标识某些模块是无副作用的,可以被 Tree-shaking 移除

  • license:项目的许可证信息。开源许可证是一种法律协议,用于明确开源软件的使用规则,可以选择ISC、MIT。

  • homepage:主页信息,项目首页的URL地址。

  • bugs:问题反馈的URL地址。

  • respository:项目源码仓库所在位置。

发布组件库

步骤 1:在 npm官方网站 中注册自己的账号,并在 npm 平台中确定是否存在和 package.json 文件的name属性相同名称的组件包,如果存在,则需要修改name属性的值,确保其是唯一的。

步骤 2:发布确定镜像源

发布确定镜像源是为了确定发布的平台,由于在开发项目过程中可能使用了非npm官方的镜像源,如淘宝npm镜像等。因此,为了将项目顺利发布至npm平台,可以先执行以下命令将镜像源改到npm官方平台。

1npm config set registry=http://registry.npmjs.org
1npm config set registry=https://registry.npmmirror.com

步骤 3:命令行登录

在终端执行以下命令,登录npm平台,在登录过程中要输入账号、密码、邮箱、验证码等

1npm login

步骤 4:发布

1npm publish

package.json

package.json 是 Node.js 项目的配置文件,它记录了该项目的相关信息和依赖。

当使用 npm init 命令初始化一个新的 Node.js 项目时,会自动生成一个 package.json 文件。

1# 根据提示初始化一个新的 Node.js 项目
2npm init
3
4# 自动使用默认值初始化一个新的 Node.js 项目
5npm init -y

package.json 中有一些重要的字段:

1{
2  "name": "xiaosu",
3  "version": "1.0.0",
4  "description": "",
5  "main": "index.js",
6  "scripts": {
7    "test": "echo \"Error: no test specified\" && exit 1"
8  },
9  "dependencies": {},
10  "devDependencies": {},
11  "keywords": [],
12  "author": "",
13  "license": "ISC"
14}

字段含义简述

name

项目名称,必须是唯一的字符串,通常采用小写字母和连字符的组合。

version

1{
2  "version": "1.0.0"
3}

项目版本号,通常采用三段式结构,由三个数字组成:

  • 第一段:主版本号(Major),一般用于重大的更新或改动。

  • 第二段:次版本号(Minor),一般用于功能的更新。

  • 第三段:修订号(Patch),一般用于错误的修复 fix bug。

description

项目的简短描述。

main

项目的主入口文件路径,通常是一个 JavaScript 文件。

keywords

项目的关键字列表,方便他人搜索和发现该项目。

author

项目作者的信息,包括姓名、邮箱、网址等。

license

项目的许可证类型,可以是自定义的许可证类型或者常见的开源许可证(如 MIT、Apache 等)。

dependencies

项目生产环境所需要的包的列表,这些包会在项目运行时自动安装。

比如 vue、md5等等

1npm install [package]
2npm install [package] --save
3npm install [package] -S

devDependencies

项目开发环境所需要的包的列表,这些包不会随项目一起发布,而是只在开发时使用。

比如 webpack、eslint、vite等等都属于开发依赖,因为生产环境不需要这些东西。

1npm install [package] --save-dev
2npm inatall [package] -D

peerDependencies

项目的同级依赖,即项目所需要的模块被其他模块所依赖。给编写插件人员或者编写npm包的开发人员去使用的

scripts

定义了一些脚本命令,比如启动项目、运行测试等。

  • 通过 npm run 脚本命令名 执行脚本

repository

项目代码仓库的信息,包括类型、网址等。

bugs

项目的 bug 报告地址。

homepage

项目的官方网站地址或者文档地址。