通常我们使用npm init命令来创建一个npm程序时,会自动生成一个package.json
文件。package.json
文件会描述这个NPM包的所有相关信息,包括作者、简介、包依赖、构建等信息,格式是严格的JSON格式。
package.json 文件配置说明 官网
- name:必需,名称,长度必须小于等于214个字符,不能以"."(点)或者"_"(下划线)开头,不能包含大写字母。
- version:必需,版本。X.Y.Z → [major, minor, patch] → [主版,次版,补丁版]
。
如:1.2.3 - description:项目描述,是一个字符串。有助于人们在使用npm search时找到这个包。
- keywords:项目关键字,是一个字符串数组。有助于人们在使用npm search时找到这个包。
- homepage:项目主页的 url。
- bugs:bug 提交地址。
- license:软件许可证,让用户知道他们的使用权利和限制。
- author:项目开发者。
- contributors:项目贡献者 。
- files:被项目包含的文件名数组。
- main:项目默认执行文件,比如 require(‘webpack’);就会默认加载 lib 目录下的 webpack.js 文件,如果没有设置,则默认加载项目跟目录下的 index.js 文件。
- bin:内部命令对应的可执行文件的路径。
- man:为系统的man命令提供帮助文档。帮助文件的文件名必须以数字结尾,如果是压缩的,需要以.gz结尾。
- directories:CommonJS包所要求的目录结构信息,展示项目的目录结构信息。字段可以是:lib, bin, man, doc, example。值都是字符串。
- repository:项目仓库地址。
- scripts:通过设置这个可以使NPM调用一些命令脚本,封装一些功能。
- config:添加一些设置,可以供scripts读取用,同时这里的值也会被添加到系统的环境变量中。
- dependencies:生产环境下,项目运行所需依赖的包。使用下面的命令来安装:npm install --save packageName。
- devDependencies:只有在开发环境下才需要的依赖包。使用下面的命令来安装:npm install --save-dev packageName。
- peerDependencies:相关的依赖,如果你的包是插件,而用户在使用你的包时候,通常也会需要这些依赖(插件),那么可以将依赖列到这里。
- bundledDependencies:绑定的依赖包,发布的时候这些绑定包也会被一同发布。
- optionalDependencies:即使这些依赖没有,也可以正常安装使用。
- engines:指定包运行的环境。
- os:指定你的包可以在哪些系统平台下运行。
- cpu:可以指定包运行的cpu架构。
- private:设为
true
这个包将不会发布到NPM平台下。 - publishConfig:这个字段用于设置发布时候的一些设定。尤其方便你希望发布前设定指定的
tag
或registry
。
如下:
{
"name": "usercenter",
"version": "1.0.0",
"description": "manage usercenter",
"keywords": ["angular","es6"],
"homepage": "https://github.com/***",
"bugs": {
"url": "https://github.com/***",
"email": "111@qq.com"
},
"license": "ISC",
"author": "xjx",
"main": "src/index.html",
"repository": {
"type": "git",
"url": "git clone git@git.hrmch.com:usercenter.git ~/git/usercenter"
},
"scripts": {
"init": "npm install",
"install": "bower install",
"start": "node src/server/app.js",
"build": "gulp build"
},
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
"morgan": "^1.10.0",
"serve-favicon": "^2.5.0"
},
"devDependencies": {
"babel-core": "^6.26.3",
"babel-preset-env": "^1.7.0",
"chalk": "^4.1.2",
"gulp": "^4.0.2",
}
}