npm 包 package.json 配置文件

package.json 文件

每个前端项目中都有 package.json 文件,它是用于声明依赖的 npm 包配置文件。

1. 生成 package.json 文件

yarn init -y

{
  "name": "package",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

  • name: 项目名称,必须字段。
  • version: 项目版本,必须字段。
  • description: 项目描述。
  • main: 入口文件。
  • scripts: 可运行的 npm 命令。
  • keywords: 关键字。
  • author: 作者。
  • license: 项目准许的许可证。

1.1. name 字段

(1) 长度必须小于或等于 214 个字符,不能以 "." 或者 "_" 开头,不能包含大写字母。
(2) 名称可以作为参数被传入 require(""),用来导入模块,需要尽量语义化。
(3) 字段不能和其他模块重名,可以使用 npm view 命令查询模块名是否存在,如果不存在就显示 404,如果存在就显示详细信息

abcdefghi 模块不存在:

模块名不存在

axios 模块存在:

模块名存在

1.2. version 字段

(1)遵循语义化版本规范,格式:主版本号.次版本号.修订版号,主版本号表示有不兼容的 API 修改,次版本号表示有向下兼容的功能性新增,修订版本号表示向下兼容的 bug 修复。
(2)查看 npm 包的版本信息,如 axios,查看最新版本:npm view axios version,查看所有版本:npm view axios versions

axios 最新版本

axios 所有版本

(3)如果某个版本的改动比较大,且不稳定,可能无法满足预期的兼容性,就需要发布先行版本。先行版本号可以在 主版本号.次版本号.修订版号 后面添加 "-" 号连接以分隔标识符和版本编译信息:内部版本(alpha)、公测版本(beta)、候选版本(rc,release candiate)。

1.3. keywords 和 description

包关键字和包描述,写好这两项将有利于包的曝光率。

1.4. main 配置

用来指定加载的入口文件,如果项目发布成了 npm 包,则用户使用 require('my-module') 后返回的就是 main 字段中所列出的 module.exports 属性。如果不指定该字段,则 Node 会尝试加载根目录下的 index.js、index.json,如果都没有找到就会报错,只能通过 require('my-module/dist/xxx.js') 加载。

1.5. scripts 脚本

package.json 内置脚本入口,是 key-value,key 是可运行的命令,通过 npm run 执行命令。除了运行基本的 scripts 命令,还可以结合 prepost 完成潜质、后续操作。如:

"scripts": {
  "test": "test.js",
  "pretest": "pre-test.js",
  "posttest": "post-test.js"
}

这三个文件中代码如下:

// test.js
console.log("test");
// pre-test.js
console.log("pre-test");
// post-test.js
console.log("post-test");

结合 pre 和 post 完成前置和后续操作

执行顺序是 pretest-test-posttest,适用于 scripts 命令存在一定的先后关系。

1.6. 作者

指明该包的作者。

posted @ 2024-03-03 15:33  艾前端  阅读(23)  评论(0编辑  收藏  举报