npm package.json 文件
管理本地安装的 npm 包的最佳方法是创建一个 package.json
文件。
一个package.json
文件:
- 列出项目所依赖的包。
- 允许使用语义版本控制规则指定项目可以使用的包版本。
- 使构建可重现,因此更容易与其他开发人员共享。
要求
一个package.json
必须具备:
"name"
- 全部小写
- 一个字,没有空格
- 允许使用破折号和下划线`
"version"
- 以形式 x.x.x
- 遵循semver 规范例如:
{
"name": "my-awesome-package",
"version": "1.0.0"
}
创建 package.json
创建 package.json
文件有两种基本方法。
1. 运行 CLI 问卷
要使用你提供的值创建一个package.json
文件,请运行:
> npm init
这将启动一个命令行调查问卷,该调查问卷将package.json
在你启动命令的目录中创建一个。
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
: 当前目录名version
: 总是1.0.0
description
: 来自自述文件的信息,或空字符串""
main
: 总是index.js
scripts
: 默认情况下创建一个空test
脚本keywords
: 空的author
: 空的license
:ISC
bugs
: 来自当前目录的信息(如果存在)homepage
: 来自当前目录的信息(如果存在)
你还可以为 init 命令设置多个配置选项。一些有用的:
> npm set init.author.email "wombat@npmjs.com"
> npm set init.author.name "ag_dubs"
> npm set init.license "MIT"
笔记
如果package.json
中没有描述字段,npm 将使用README.md
或 README的第一行。描述可以帮助人们在搜索 npm 时找到你的包,因此在 中进行自定义描述package.json
以使你的包更容易找到绝对有用。
如何自定义 package.json 问题
如果你希望创建许多 package.json 文件,你可能希望自定义在初始化过程中提出的问题,以便文件始终包含你所期望的关键信息。你也可以自定义字段以及提出的问题。
为此,你在~/.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"
:应用程序在生产中需要这些包。"devDependencies"
: 这些包只用于开发和测试。
手动编辑 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 和 --save-dev 安装标志
向你的依赖项添加依赖项的更简单(也更棒)的方法package.json
是从命令行npm install
执行此操作,使用--save
或 标记命令--save-dev
,具体取决于你希望如何使用该依赖项。
要向你的package.json
's添加条目dependencies
:
npm install <package_name> --save
要向你的package.json
's添加条目devDependencies
:
npm install <package_name> --save-dev
管理依赖版本
npm 使用语义版本控制,或者我们经常提到的 SemVer,来管理包的版本和版本范围。
如果你的package.json
目录中有一个文件并运行npm install
,npm 将查看该文件中列出的依赖项并使用语义版本控制下载最新版本。