如果您使用JavaScript项目,前端项目或node.js项目或与之交互,那么您肯定知道package.json文件。
什么是package.json文件?
package.json文件是您项目的清单。 它用于存储与项目有关的元数据以及存储依赖项包列表。
- package.json文件用于向npm提供信息,使它可以识别项目并处理所有项目的依赖项。
- package.json文件使其他人可以轻松安装和管理与项目相关的软件包。
- package.json文件包含元数据,例如项目描述,特定发行版中的项目版本,许可证信息以及更多其他内容。
- 如果要存储与项目相关的任何依赖项或任何包,则需要创建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存储库。 在存储库字段中,您可以看到除了type和URL之外的所有数组。
该类型用于显示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