在线文档教程

使用package.json

使用package.json

管理本地安装的npm包的最佳方法是创建一个 package.json文件。

一个package.json文件:

  • 列出项目所依赖的包。

要求

一个package.json必须具备:

  • "name"

例如:

{ "name": "my-awesome-package", "version": "1.0.0" }

创建一个 package.json

创建package.json文件有两种基本方法。

1.运行CLI问卷

要创建package.json包含您提供的值,请运行:

> npm init

这将启动命令行调查问卷,该调查问卷将package.json在您启动命令的目录中创建a 。

2.创建默认值 package.json

要获取默认值package.json,请npm init使用--yes or -y标志运行:

> npm init --yes

此方法将package.json使用从当前目录中提取的信息生成默认值。

> npm init --yes Wrote to /home/ag_dubs/my_package/package.json: { "name": "my_package", "description": "", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "https://github.com/ashleygwilliams/my_package.git" }, "keywords": [], "author": "", "license": "ISC", "bugs": { "url": "https://github.com/ashleygwilliams/my_package/issues" }, "homepage": "https://github.com/ashleygwilliams/my_package" }

  • name:当前目录名称

您还可以为init命令设置多个配置选项。一些有用的:

> npm set init.author.email "wombat@npmjs.com" > npm set init.author.name "ag_dubs" > npm set init.license "MIT"

注意:

如果中没有描述字段,则package.jsonnpm使用README.md或README 的第一行。该描述可帮助人们在搜索npm时找到您的包,因此在package.json您的包中更容易找到自定义描述非常有用。

如何定制package.json问卷

如果您希望创建许多package.json文件,您可能希望自定义在init过程中询问的问题,以便文件始终包含您期望的关键信息。您可以自定义字段以及提出的问题。

为此,您可以.npm-init.js在主目录中 创建自定义~/.npm-init.js

一个简单的.npm-init.js可能看起来像这样:

module.exports = { customField: 'Custom Field', otherCustomField: 'This field is really cool' }

npm init在您的主目录中运行此文件将输出package.json包含以下行的文件:

{ customField: 'Custom Field', otherCustomField: 'This field is really cool' }

您还可以使用该prompt功能自定义问题。

module.exports = prompt("what's your favorite flavor of ice cream, buddy?", "I LIKE THEM ALL"

要了解有关如何创建高级自定义的更多信息,请查看init-package-json的文档

指定依赖项

要指定项目所依赖的包,您需要列出要在package.json文件中使用的包。您可以列出两种类型的包:

  • "dependencies":您的应用程序在生产中需要这些包。

手动编辑你的 package.json

你可以手动编辑你的package.json。您需要在被调用的包对象中创建一个dependencies指向对象的属性。此对象将包含命名您要使用的包的属性。它将指向一个semver表达式,指定与项目兼容的项目版本。

如果您有依赖项,则只需在本地开发期间使用,请遵循上述相同的说明,但使用名为的属性devDependencies

例如,下面的项目使用my_dep与生产中的主要版本1匹配的任何版本的软件包,并且需要my_test_framework与主要版本3匹配的任何版本的软件包,但仅用于开发:

{ "name": "my_package", "version": "1.0.0", "dependencies": { "my_dep": "^1.0.0" }, "devDependencies" : { "my_test_framework": "^3.1.0" } }

在--save-prod和--save-dev安装标志

向您添加依赖项的更简单(也更棒的)方法package.json是从命令行npm install执行此操作,使用--save-prod(默认情况下假定) 标记命令,或者--save-dev根据您希望如何使用该依赖项。

一个条目添加到您package.jsondependencies

npm install <package_name> [--save-prod]

一个条目添加到您package.jsondevDependencies

npm install <package_name> --save-dev

管理依赖版本

npm使用语义版本控制,或者,正如我们经常提到的那样,SemVer,用于管理软件包版本和范围。

如果你的package.json目录中有一个文件并且你运行npm install,npm将查看该文件中列出的依赖项并使用语义版本控制下载最新版本。

学到更多

要了解有关package.json功能的更多信息,请参阅第4章中的 “在本地安装npm软件包”视频。

要了解有关语义版本控制的更多信息,请参阅“ 入门”“Semver”页面。