发布于 2026-01-06 3 阅读
0

了解 package.json 文件

了解 package.json 文件

什么是 package.json 文件

package.json 是一个 JSON 文件,位于 Javascript/Node 项目的根目录。它包含与项目相关的元数据,用于管理项目的依赖项、脚本、版本等等。

创建package.json文件

创建/生成文件有两种方法package.json

  • Npm 或 Yarn

要使用npm创建 package.json 文件,请npm init在终端中运行。

要使用此方法,您的系统需要安装Node.js。

要使用yarn创建 package.json 文件,请yarn init在终端中运行。

要使用 yarn 方法,您的系统需要安装NodeYarn 。

注意:在本文中,我将使用npm命令来展示如何执行特定任务的示例,如果您更喜欢使用命令yarn,请点击此处yarn CLI查看。

运行该命令后,它会询问一些项目信息,并package.json在项目根目录下生成一个文件。生成的文件应类似于下面的示例。

  {
    "name": "storemanager",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "directories": {
      "test": "test"
    },
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [],
    "author": "",
    "license": "ISC"
  }

注意:您也可以运行npm init -yyarn init -y生成package.json具有默认值的文件。

  • 手动

要手动创建该文件,请package.json在项目根目录下手动创建一个文件,并添加一个包含所需属性(名称和版本)的空对象。
它应该类似于下面的示例。

  {
    "name": "storemanager",
    "version": "1.0.0"
  }

package.json 文件的属性

姓名

`name` 属性是package.json文件中的必填字段,它代表项目的名称。在 `package.json` 文件中为项目指定名称时,需要遵循一些规则。

  • 必须小写
  • 必须是一个词
  • 可以包含连字符和下划线
  • 不应以下划线(_)或点(.)开头。
  "name": "package.json-mastery"

版本

版本号也是package.json文件中的必填字段。该属性表示项目中模块的当前版本。
版本号字段必须遵循语义化版本控制规范,例如 1.0.2。

  "version": "1.0.0"

描述

description 属性用于描述项目并提供有关项目的更多信息。

  "description": "Mastery of the package.json file"

发动机

engines 属性是一个 JSON 对象,其中包含键/值对,用于表示/指定应用程序应运行的库和运行时的版本。

 "engines": {
    "npm": "6.10.0",
    "node": "10.14.1"
  }

依赖项

dependencies 属性列出了应用程序正常运行所需的模块/包。安装依赖项后,它会被添加到依赖项列表中。

"dependencies": {
  "bcryptjs": "^2.4.3",
  "cors": "^2.8.5",
  "dotenv": "^6.1.0",
  "express": "^4.16.4",
}

要安装依赖项,请在终端运行 `npm install`npm i package或 ` npm install packagenpm install`。其中 `package` 是您尝试安装的软件包的名称。

例如,要安装axios依赖项,请npm install axios在终端中运行。

开发依赖项

devDependencies 属性列出了应用程序运行不需要的模块/包。它们也称为开发依赖项。

 "devDependencies": {
    "eslint": "^4.19.1",
    "mocha": "^6.2.0",
    "nodemon": "^1.19.1",
  }

要安装开发依赖项,请在终端运行 `devDependency install`npm i package --save-dev或 ` devDependency install` npm install package -D。其中 `package` 是您尝试安装的软件包的名称。

例如,要安装chai devDependency,请npm install chai --save-dev在终端中运行。

脚本

`script` 属性接受一个键值对的 JSON 对象。每个脚本都可以用于执行不同的任务集,例如构建、测试和检查应用程序代码。您可以通过在终端运行 `scripts run`或 `
scripts run` 来运行脚本。npm run scriptnameyarn scriptname

  "scripts": {
    "start": "node index",
    "dev": "nodemon index",
    "test": "jest",
    "lint": "eslint ./server",
  }

例如,要执行上面示例中的开发脚本,请在终端上运行npm run dev或。yarn dev

主要的

主属性是应用程序的入口点,应该指向作为应用程序入口点的文件。

  "main": "app.js"

首页

homepage 属性用于指定应用程序/软件包的首页。

 "homepage": "https://github.com/Easybuoy/package.json-mastery#readme",

私人的

私有属性默认为 false,但可以设置为 true 以防止发布应用程序/包。

  "private": true

执照

此属性表示项目使用的许可证类型。

"license": "MIT"

作者

此属性表示项目的创建者/所有者。

"author": "Ezekiel Ekunola"

仓库

`repository` 关键字是一个 JSON 对象,包含键值对,用于指定应用程序所使用的版本控制系统。您可以指定所使用的版本控制类型、
存储库的 URL,以及存储库中的可选目录。

"repository": {
    "type": "git",
    "url": "git+https://github.com/Easybuoy/package.json-mastery.git"
  }

漏洞

bugs 属性用于指向应用程序存储库的问题页面,或任何可以报告项目问题的地方。

 "bugs": {
    "url": "https://github.com/Easybuoy/package.json-mastery/issues"
  }

关键词

keywords 属性是一个关键字数组,它可以帮助识别您的项目,或者让用户在搜索这些关键字时更容易找到您的项目。

  "keywords": ["node", "javascript", "npm", "yarn"]

自定义属性

package.json 文件还可以用于指定包的特定命令,例如 Babel、ESLint、Jest 等等。您可以在包文档中找到具体用法。

下面提供一个自定义属性的示例Jest

  "jest": {
      "snapshotSerializers": [
        "enzyme-to-json/serializer"
      ]
    }

结合以上所有属性,我们最终可以得到一个package.json类似于以下示例的文件。

{
  "name": "package.json-mastery",
  "version": "1.0.0",
  "description": "Mastery of the package.json file",
  "private": false,
  "main": "index.js",
  "scripts": {
    "start": "node index",
    "dev": "nodemon index",
    "test": "jest"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Easybuoy/package.json-mastery.git"
  },
  "keywords": [
    "node",
    "javascript",
    "npm",
    "yarn"
  ],
  "author": "Ezekiel Ekunola",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/Easybuoy/package.json-mastery/issues"
  },
  "homepage": "https://github.com/Easybuoy/package.json-mastery#readme",
  "engines": {
    "npm": "6.10.0",
    "node": "10.14.1"
  },
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "cors": "^2.8.5",
    "dotenv": "^6.1.0",
    "express": "^4.16.4"
  },
  "devDependencies": {
    "eslint": "^4.19.1",
    "mocha": "^6.2.0",
    "nodemon": "^1.19.1"
  },
  "nyc": {
    "exclude": [
      "server/app.js",
      "server/config/",
      "server/build"
    ]
  }
}

结论

在本文中,我们已经了解了什么package.json是文件、如何创建文件、文件的不同属性及其用途。

package.json 文件中还可以指定更多属性,如果您想深入了解,请点击此处查看。

如果您对本文有任何疑问或反馈,欢迎留言。

感谢阅读。

本文最初发表于我的博客

文章来源:https://dev.to/easybuoy/understanding-the-package-json-file-3fdg