npm package.json
来源:Node.js
npm
npm,全称 Node Package Manager,是Nodejs 的包管理工具
它是一个基于命令行的工具,用于帮助开发者在自己的项目中安装、升级、移除和管理依赖项
类似于Java的Maven或Python的pip
npm命令
1 | npm init # 初始化新npm项目,创建package.json文件 |
npm install
安装模块时一般是扁平化安装的,但是有时会出现嵌套的情况,这是因为版本不同倘若A依赖C 1.0、B依赖C1.0、D依赖C 2.0,此时C 1.0就会被放到A、B的node_moduels,C 2.0 会被放入D模块的node_moduels
package.json
执行npm init
即可初始化一个package.json,其中含有一些配置项:
name:项目名称,必须是唯一的字符串,通常采用小写字母和连字符的组合
version:项目版本号,通常采用语义化版本号规范
version的格式一般形如1.0.0,三个数字分别代表大版本号、次版本号、修订号
- 大版本号:有重大变化才会升级
- 次版本号:增加功能时进行升级
- 修订号:修改bug时进行升级
author:项目开发者,它的值是开发者在npm官网的有效账户名,格式是”账户名 <邮箱>“
privare:是否私有,npm拒绝发布私有项目
description:项目描述
main:项目的主入口文件路径,通常是一个JavaScript文件
engines:此项目要运行的Nodejs或其他命令的版本
type:模块化类型
module:ESM模块化加载路径,有此项就查找此项,否则查找main
browserlist:需要支持的浏览器,Babel、Autoprefixer等工具会用到它,以将所需的polyfill和fallback添加到目标浏览器
keywords:项目的关键字列表,方便他人搜索和发现该项目
author:项目作者的信息,包括姓名、邮箱、网址等
license:项目的许可证类型,可以是自定义的许可证类型或常见的开源许可证(例如MIT、Apache等)
dependencies:项目所依赖的包的列表,这些包会在项目运行时自动安装,生产环境中也会用到
devDependencies:项目开发过程中所需要的包的列表,这些包不会随项目一起发布,而是只在开发时使用
peerDependencies:项目的同级依赖,即项目所需要的模块被其他模块所依赖,编写一些插件时会用到,使用本插件的项目必须已安装peerDependencies中的依赖
scripts:定义了一些脚本命令,比如启动项目、运行测试等
bin:内部命令对于的可执行文件的路径
repository:项目代码仓库的信息,包括类型、网址等
contributors:项目贡献者
bugs:项目的bug报告地址
homepage:项目的官方网站地址或者文档地址