package.json文件指南

如果您使用JavaScript项目,前端项目或node.js项目或与之交互,那么您肯定知道package.json文件。

什么是package.json文件?

package.json文件是您项目的清单。 它用于存储与项目有关的元数据以及存储依赖项包列表。

  1. package.json文件用于向npm提供信息,使它可以识别项目并处理所有项目的依赖项。
  2. package.json文件使其他人可以轻松安装和管理与项目相关的软件包。
  3. package.json文件包含元数据,例如项目描述,特定发行版中的项目版本,许可证信息以及更多其他内容。
  4. 如果要存储与项目相关的任何依赖项或任何包,则需要创建package.json文件

在哪里可以找到package.json文件?

package.json文件通常位于项目文件夹结构的根目录中。

如何创建自己的package.json文件?

1.首先,在目录中创建一个文件夹,然后使用以下命令转到该文件夹

mkdir demo
cd demo

2.然后在命令行上键入npm init [ npm init <initializer>可用于设置新的或现有的npm软件包。 ]

npm init
注意:您也可以使用毛线代替npm。 只需将npm单词替换为yarn。

3.在创建package.json文件时,它将要求一些信息,例如版本,描述等,如下所示。

4.如果要创建package.json文件而不给出问题的答案,请在命令行上输入以下命令

npm init -- yes

5.使用与故宫init命令- - yes-y标志。 它将使用从当前目录提取的信息创建默认的package.json

之后,您的package.json文件将类似于此文件。

package.json文件中存在的内容信息:

现在,您的文件夹中有package.json文件。 在所需的编辑器上打开文件,您可以看到名称,版本,许可证和许多其他内容。

我们将一一看清它的含义。

1.姓名:

名称字段描述项目的名称,目录或应用程序的名称。 您可以给应用程序起任何名字,只需要遵循一种特定的模式即可,即应使用小写字母并可以包含连字符和下划线。

在package.json文件中,您可以通过以下方式查看名称字段:

{
  "name": "demo"
}

2.版本:

版本是您应用的当前版本。 版本字段的格式必须为xxx

npm还使用version字段来确保安装了正确的软件包版本。

通常,它采用major.minor.patch格式

例如

major.minor.patch1 . 0 . 2

在这里,主要,次要和补丁表示软件包的不同发行版。

有时在package.json文件中,您会在软件包版本的前面看到'〜'(波浪号)和'^'(脱字符)的符号。 它用于指定分别使用哪个补丁程序和次要版本。

例如

1.如果看到〜1.0.3,则意味着安装版本1.0.3或最新的修补程序版本,例如1.0.5。

2.如果看到^ 1.0.3,则意味着安装版本1.0.3或最新的次要版本或修补程序版本,例如1.1.0。

在package.json文件中,您可以通过以下方式查看名称字段:

{
  "version": "1 . 0 . 0 "
}

3.说明:

description字段用于一行描述项目,否则您可以保持原样,它将使用一个空字符串。

npm search中列出的,它还可以帮助人们发现您的包裹。

例如

{
  "description": " "
}

4.许可证:

license属性用于为您的软件包指定许可证,以便人们知道如何使用它们以及您对它施加的任何限制。

尽管可以通过某些方式使用package.json文件的license属性(以进行双重许可或定义自己的许可之类的事情),但最典型的用法是使用SPDX许可标识符-您可以通过一些示例可能知道是MIT,ISC。

在package.json中,您可以看到带有MIT许可证的许可属性,如下所示:

{
  "license": "ISC"
}

5.主要:

main字段用于显示程序的主要入口点。

在Node.js应用程序中,当使用require语句调用模块时,模块从main属性中命名的文件中导出的内容就是返回给Node.js应用程序的内容。

例如,如果用户安装了“ express”软件包,然后在应用程序中确实需要(“ express”),则将返回主模块的导出对象。

在package.json中,main属性如下所示:

{
  "main": "index.js"
}

6.储存库:

一个的package.json文件的存储库字段是在该阵列格式定义了项目的源代码住。 通常,对于开源项目,这将是公共GitHub存储库或Bitbucket存储库。 在存储库字段中,您可以看到除了typeURL之外的所有数组。

该类型用于显示eg.git的版本控制,而URL只是您的项目存储在GitHub或bit bucket上的位置。

在package.json中,repository属性如下所示:

"repository": 
 {
   "type ": "git",
   "url": "https://github.com/snehal9/demo"
 }

7.私人的:

私有是最重要的属性之一。 如果您在package.json中将private设置为true,则使用此字段,那么npm将拒绝在npm生态系统中发布它。 这样,您可以防止意外发布私有存储库。

在package.json内部,private属性如下所示:

{
  "private": true
}

8.依存关系:

依赖项字段包含生产环境中应用程序所需的所有必需的node_modules和版本。 在下面的示例中,它包含四个依赖关系,这些依赖关系使我们可以在JavaScript中使用react,react-dom,react-router-dom和react-scripts。 react-scripts是一个库,提供了一组用于使用React的有用的开发脚本。

在下面的示例中,react版本指定为^ 16.12.0,这意味着npm将安装与16.xx匹配的最新版本。否则,如果在package.json中看到类似〜16.12.0的内容,则意味着它将安装与16.12.x匹配的最新次要版本。

为了在依赖项下添加软件包,请使用-在安装时保存。

例如,

npm install <package-name> --save

默认情况下,这会在依赖项下列出程序包及其版本号。

"dependencies":
  {
    "react": "^16 . 12 . 0 ",
    "react-dom": "~ 16 . 12 . 0 ",
    "react-router-dom": " 5 . 1 . 2 ",
    "react-scripts": " 3 . 3 . 0 ",
  }

9. DevDependencies:

DevDependencies列出了开发和测试所需的软件包。

为了将包添加到devDependencies列表中,在安装时必须通过编写--save-dev将其指定为dev依赖项。

例如, npm install <程序包名称> --save-dev

通过使用以上命令,程序包将被添加到devDependencies属性列表中。

例如

"devDependencies": 
    {
      "enzyme": "3 . 10 . 0 ",
      "enzyme-adapter-react- 15 ": " 1 . 4 . 1 ",
      "enzyme-adapter-react- 16 ": " 1 . 15 . 1 ",
      "eslint": " 6 . 7 . 2 ",
    }

10.脚本:

script属性用于指定可用于运行任何命令的别名。 例如,如果要运行节点应用程序,则可以编写用于运行应用程序的命令。 也可以有其他脚本或命令(例如lint)部署更多。

例如,当使用lint时,您可以编写以下内容,在这里我要整理所有文件。

“lint”: “eslint ‘./src/**/ *.{ts,tsx}’”

以下是脚本属性的eg:

"scripts":
 {
   "start ": "node app.js",
   "lint": "eslint './src/**/*.{js}'"
 }

11.主页:

homepage属性用于指定项目主页的URL。 当您使用gh-pages时,这在您的react应用程序中变得很方便,它会将构建目录部署到首页。

例如

{
   "homepage": "https://github.com/owner/project#readme"
}

希望您现在对package.json文件的理解更好。

快乐编码:)

翻译自: https://hackernoon.com/the-packagejson-file-guide-ro5u3wra

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值