什么是Package.json
package.json
是对项目或模块进行描述的Json文件
,其中包含了当前项目需要的各种基本信息,比如项目名称/版本/作者,入口文件,依赖项等
此文件具有统一的标准格式,一般情况下都是通过npm init
命令创建
配置项
如下是insipid (Electron)
项目的package.json
文件,大多数项目的package.json
文件类似
{
"name": "insipid",
"version": "0.1.1",
"private": true,
"scripts": {
"start": "vue-cli-service electron:serve",
"build": "vue-cli-service electron:build",
"serve:vue": "vue-cli-service serve",
"build:vue": "vue-cli-service build",
"lint": "vue-cli-service lint",
"install": "electron-builder install-app-deps",
"uninstall": "electron-builder install-app-deps"
},
"main": "background.js",
"dependencies": {
"@element-plus/icons-vue": "^2.0.9",
"axios": "^0.27.2",
"core-js": "^3.8.3",
"element-plus": "^2.2.13",
"pinia": "^2.0.18",
"vue": "^3.2.13",
"vue-router": "^4.0.3"
},
"devDependencies": {
"@types/electron-devtools-installer": "^2.2.0",
"@typescript-eslint/eslint-plugin": "^5.4.0",
"@typescript-eslint/parser": "^5.4.0",
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-plugin-router": "~5.0.0",
"@vue/cli-plugin-typescript": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"@vue/eslint-config-typescript": "^9.1.0",
"electron": "^13.0.0",
"electron-devtools-installer": "^3.1.0",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"ts-loader": "~8.2.0",
"typescript": "~4.5.5",
"vue-cli-plugin-electron-builder": "~2.1.1"
}
}
name
项目名称,最多为214个字符,只能为小写英文字符
/_
/.
组成
version
项目版本号
author
项目作者,字符串类型/对象
{
"name" : "Eyre Simpson",
"email" : "test@demo.com",
"url" : "http://test.com/"
}
description
项目描述,字符串类型
,用于描述此项目或模块的作用
keywords
项目关键字,需要提供一个字符串数组
private
是否为私有项目,布尔类型
值,如果为true
,将无法发布到npm
license
项目授权方式,字符串类型,如MIT
bugs
如果发现bug,提交的地址
contributors
项目的贡献人
repository
项目的代码仓库地址
"repository" :{
"type" : "git",
"url" : "https://github.com/xxx/xxx.git"
},
homepage
项目主页URL,很多大型项目都会创建一个页面来存放文档和快速入门等资料
dependencies
生产环境
下,项目依赖的模块
devDependencies
开发环境
下,项目依赖的模块
scripts
项目脚本,如命令 npm run build
中,build
就是脚本名称
"scripts": {
"dev": "node dev.js",
"test": "node test.js",
},
bin
内部命令引用的可执行文件目录
main
默认可执行文件,默认为index.js
module
与main类似,由ES 6
方式定义,一般优先使用module
方式
eslintConfig
ES Lint配置文件所在位置
engines
项目运行的平台要求
"engines" : {
"node" : ">=16.18.0"
}
browserslist
项目运行的浏览器要求
style
样式文件位置
files
项目包含的文件名数组,在执行npm publish
时会根据此数组进行推送,反之,也可以在项目下设置.npmignore
文件(与git的.gitignore
类似),规定某些文件不会被推送到npm
,一般情况下,如果项目下存在gitignore
是不需要再设置npmignore
的,在推送到npm时会自动使用git的忽略文件列表
man
项目手册,可指定一个或多个文件作为手册,和linux下man的含义一致
参与讨论
(Participate in the discussion)
参与讨论