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
。
(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 命令,还可以结合 pre
和 post
完成潜质、后续操作。如:
"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");
执行顺序是 pretest-test-posttest,适用于 scripts 命令存在一定的先后关系。
1.6. 作者
指明该包的作者。