name
- 必须,包名。
"name": "Guagua"
version
- 必须,包的版本号。
"version": "3.7.2"
description
- 包的描述。
"description": "Guagua"
homepage
- 包的官网 url 。
author
- 包的作者姓名。
contributors
- 包的其他贡献者姓名。
license
- 指定一个许可证,让人知道使用的权利和限制的
"license": "MIT"
dependencies
- 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
"devDependencies": {
"autoprefixer": "7.2.3",
"babel-core": "6.26.0",
"babel-eslint": "8.0.3"
...
}
repository
- 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
main
-
main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
-
关键字,方便在 npm search中搜索
bugs
- 提供给使用者上报 bugs的途径, 可以填一个email或者一个issue地址,如果提供了url,它会被npm bugs命令使用
engines
- 指定项目工作的环境。除非用户设置engine-strict标记,这个字段只是建议值。
"engines": {
"node": ">= 4.0.0",
"npm": ">= 3.0.0"
}
bin
- 定义了一系列可执行命令, 安装完以后, 输入pm2实际上是运行{模块所在目录}/bin/pm2;
- 带有bin信息的包, 在局部安装后, 可执行文件会在./node_modules/.bin下
- 如果是全局安装, 可执行文件会在 $PATH 里对应npm那个目录下
"bin": {
"pm2": "./bin/pm2",
"pm2-dev": "./bin/pm2-dev",
"pm2-docker": "./bin/pm2-docker",
"pm2-runtime": "./bin/pm2-runtime"
},
man
- 用于执行man {包名}时, 展现给用户的手册内容
scripts
- 重点,执行脚本,使用scripts字段定义脚本命令,项目的相关脚本,可以集中在一个地方。
- 命令行下使用npm run + 命令,就可以执行这段脚本。
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --inline --progress -- config build/webpack.dev.conf.js",
"prod": "cross-env NODE_ENV=production env_config=prod node build/build.js",
"prod:test": "cross-env NODE_ENV=production env_config=prod is_test_mode=true npm_config_report=true node build/build.js",
"lint": "eslint --ext .js,.vue src",
"test": "npm run lint",
"add": "git checkout dev&git pull&git checkout dev-l&git merge dev&git status&git checkout dev&git merge dev-l&git push&git branch -d dev-l",
"clash": "git add .& git commit -m",
"postclash": "npm run add",
"put": "git branch dev-l&git checkout dev-l&git add .& git commit -m",
"postput": "npm run add"
}