在每个项目的根目录下,一般会有一个 package.json 文件,定义了这个项目中所需各种模板和项目中的配置信息。
npm install 命令就是根据这个配置文件,自动下载所需的模块,配置项目中所需的运行和开发环境。

{
  "name": "first_electron",
  "version": "0.1.0",
  "description": "我的第一个 Electron 项目",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "author": "samrt crane",
  "license": "ISC",
  "devDependencies": {
    "electron": "^9.2.0"
  }
}

使用 npm init 命令可以初始化一个 package.json 的文件,在初始化的时候会让用户输入 name, version 等信息(也可以直接回车使用默认的设置),然后就会生成如上的 package.json 配置文件。

上面的 package.json 包含了项目的名称,版本号,描述,入口文件,执行脚本,作者,开源协议等,但是,package.json 的内容远不止这些。


详细介绍

name : 包的名称

name 有长度限制,不能以 ._ 开头,不能有大写字母。
在业务代码中,通过 require(${name}) 就可以引入对应的程序包了。

version : 包的版本

一般都是 大版本.次版本.小版本 形式的版本号, 如 12.1.0
在发布的项目里, nameversion 共同决定了唯一的一份代码。

description : 包的描述

简明地向使用者介绍,这个库是干什么用的。
开发组件库的时候必需,对于公司业务项目的话无所谓。

keywords : 关键词

对于 npm 包的介绍,方便使用者在 npm 中搜索。对于公司业务项目的话无所谓。

license : 开源协议

开源协议大概如下图所示,(注: ISCBSD 差不多)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fpowvkbg-1597991039238)(Images/license.png)]

author : 作者

contributors : 贡献者

main : 代码入口

这个非常重要,特别是对于组件库。当你想在node_modules中修改你使用的某个组件库的代码时,首先在 node_modules 中找到这个组件库,第一眼就是要看这个 main,找到组件库的入口文件,然后再去修改。

scripts : 运行脚本的 npm 命令行缩写

先看一个例子:

"scripts": {
	"start": "electron .",
	"dev": "electron . --debug",
	"test": "mocha && standard",
},

在命令行输入:npm run xxx,对应的命令就会被执行。如 npm run devnpm run start
当执行 npm run xxx 时,node_modules/.bin/ 目录会在运行时加入系统的 Path 变量。

如上面的例子,我们执行 npm run dev 时,实际上执行的是

node_modules/.bin/electron . --debug

repository : 仓库

让使用者找到你的代码库地址,这个配置项会直接在组件库的 npm 首页生效。

dependencies : 项目运行的依赖

通过 npm install --save 安装的包会出现在这里。

来看一个例子:

"dependencies": {
	"electron": "^7.2.4",
	"electron-log": "^2.2.14",
	"electron-settings": "^3.0.7",
	"electron-shortcut-normalizer": "^1.0.0",
	"glob": "^7.1.0",
	"highlight.js": "^9.3.0",
	"update-electron-app": "^1.1.1"
},

其中,关于版本的设置规则如下:

"dependencies": {
	"electron": "7.2.4",	//指定安装 7.2.4 版本
	"electron": "~7.2.4",	//安装版本号不低于 7.2.4 的 7.2.x 的最新版本
	"electron": "^7.2.4",	//安装版本号不低于 7.2.4 的 7.x.x 的最新版本
	"electron": "latest",	//安装最新版本
},

devDependencies : 项目开发的依赖

通过 npm install --save -dev 安装的包会出现在这里。
主要是在开发过程中依赖一些工具,用法与 dependencies 相似。

来看一个例子:

"devDependencies": {
	"@octokit/rest": "^16.3.2",
	"chai": "^3.4.1",
	"chai-as-promised": "^6.0.0",
	"check-for-leaks": "^1.2.1",
	"devtron": "^1.3.0",
	"electron-packager": "^12.1.0",
	"electron-winstaller": "^2.2.0",
	"husky": "^0.14.3",
	"mocha": "^5.2.0",
	"npm-run-all": "^4.0.2",
	"request": "^2.70.0",
	"rimraf": "^2.5.2",
	"signcode": "^0.5.0",
	"spectron": "^5.0.0",
	"standard": "^8.2.0",
	"tap": "^14.10.6"
},

总结

对于 package.json ,一般情况下我们只需要关注好 scriptsdependenciesdevDependencies 三个地方就够了。

参考文档

package.json的所有配置项及其用法

Logo

前往低代码交流专区

更多推荐