说明
对项目或者模块包的描述
这里面有很多元信息,比如:名称、版本等
当克隆一个新项目到本地时,执行install命令,会根据此文件的信息下载所需的模块
生成package.json
新项目执行
npm init
生成(会问一堆问题,根据回答生成对应的文件)
执行npm init -y
忽略问题生成默认配置的文件
各项属性含义
- name:表示
项目名称
(不得包含大写字母)可以使用npm view
命令查询模块名是否重复(不重复就会提示404) - version:表示
版本号
,命令格式为主版本号.次版本号.修订号(通常情况下,修改主版本号是做了大的功能性改动,修改次版本号是新增了新的功能,修改修订号就是修复了一个BUG)
如果打算发布包
name
和version
是最重要的字段
,共同构成一个唯一标识符(为了防止意外的将私有库发布到npm服务器
,可以在name的同级下设置"private":true
)
- description:表示
描述
- keywords:表示
关键字
description
与keywords
,有助于发现发布的包,会在npm search example
中列出
- main:表示
程序的主要入口
- scripts:表示
包生命周期中不同时间运行的脚本命令
(npm run
来运行对应的脚本)
创建前后脚本:
1.自定义一个脚本命令 (如:“compress”:“echo 压缩”)
2.将pre(前)与post(后)添加到脚本命令名称前 如(“precompress”:“echo 压缩前”,“postcompress”:“echo 压缩后”)
3.执行脚本命令 如 npm run compress (就会按照顺序执行)
更灵活的用法:传递命令行参数
- config:表示
配置脚本运行时的参数
“config”: {
“root”:666
}
测试:
1.新建一个脚本命令,值为 “node a.js” 表示在同级目录下运行a.js文件
2.新建a.js文件 内容为console.log(process.env.npm_package_config_root)
这里的root为config里你写的名称,
3.运行创建的脚本命令 就能看见输出的666
- author:表示包的作者
- license:表示指定许可证(默认MIT协议)
- dependencies:表示指定依赖关系
版本号前面不带符号表示只安装这个指定的版本
带符号:
波浪号表示安装最近的小版本 (~1.0.2 为 1.0.x)
插入号(尖号)表示安装最近的大版本 (^1.0.2 为 1.x.x)
- devDependencies:表示开发过程中使用(安装时使用 --D或者–sava-dev 安装依赖)