严正声明

严正声明:近期有不法份子,伪造我司营业执照跟公章进行行骗活动,对于该行为我司已经提起法律诉讼,请广大网民不要轻信,避免上当受骗。需要核实人员身份以及投诉热线:136-8733-8456,欢迎致电咨询。打款请认准官方唯一收款账号 账户名称:湖南百璋网络科技有限公司 账号:8100 0009 6597 0000 01

湖南百璋网络科技有限公司_网站建设_网站推广_网站优化

网站设计是技术与创意的完美融合!

网站知识

什么是package.json文件

2021-01-05

package.json是存在于Javascript / Node项目根目录下的JSON文件。它保存与项目相关的元数据,并用于管理项目的依赖项,脚本,版本等。

建立package.json档案

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

  • Npm或纱线

    要使用npm创建package.json文件,请npm init在您的终端上运行

    要使用此方法,您需要在系统上安装Node

    要使用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 i packagenpm install package该软件包是您要安装的软件包的名称。

例如,要安装axios依赖性,请npm install axios在您的终端上运行

devDependencies

devDependencies属性表示应用程序正常运行不需要的模块/软件包列表。它们也称为开发依赖项。

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

要安装devDependency,运行npm i package --save-devnpm install package -D你的终端上。该软件包是您要安装的软件包的名称。

例如,要安装chai devDependency,请npm install chai --save-dev在您的终端上运行

script

script属性采用键/值对的JSON对象。每个脚本可用于执行不同的任务集,例如构建,测试,整理应用程序。
您可以通过运行运行脚本npm run scriptname,或者yarn scriptname在终端上。

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

例如,执行开发上面,运行示例脚本npm run dev或者yarn dev您的终端。

main

main属性用作应用程序的入口点,并且应指向用作应用程序入口点的文件。

  "main": "app.js"

homepage

homepage属性用于指定应用程序/程序包的登录页面。

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

private

默认情况下,private属性为false,但可以将其设置为true,以防止发布应用程序/程序包。

  "private": true

license

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

"license": "MIT"

author

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

"author": "*****"

repository

repository关键字是键/值对的JSON对象,用于指定用于管理应用程序的版本控制系统。您可以指定使用的版本控制的类型,
存储库的URL以及存储库内的可选目录。

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

bugs

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文件是什么,如何创建文件,不同的属性及其用例。