npm package.json 的用法
作用
如果你想管理本地安装的npm软件包,或者和别人一起分享等
最佳方法是创建一个 package.json
文件。
功能
一个package.json文件功能:
- 列出您的项目所依赖的软件包。
- 允许您使用语义版本控制规则指定项目可以使用的程序包的版本。
- 使您的构建具有可复制性,因此更易于与其他开发人员共享。
要求
一个package.json必须具备:
“name”
- 全部小写
- 一个词,没有空格
- 允许使用破折号(-)和下划线(_)
“version”
- 以…的形式
x.x.x
- 遵循semver规范
例如
{
"name": "axihe-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 或-y标志运行:
> npm init --yes
此方法将package.json使用从当前目录提取的信息来生成默认值。
如果是git项目,会是下面这种的;
> npm init --yes
Wrote to /home/anbang/axihe-test/package.json:
{
"name": "axihe-test",
"description": "",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/axihe/axihe-test.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/axihe/axihe-test/issues"
},
"homepage": "https://github.com/axihe/axihe-test"
}
- name:当前目录名称
- version:总是 1.0.0
- description:自述文件中的信息,或者为空字符串 ""
- main:总是 index.js
- scripts:默认情况下会创建一个空test脚本
- keywords:空
- author:空
- license: ISC
- bugs:当前目录中的信息(如果存在)
- homepage:当前目录中的信息(如果存在)
您还可以为init命令设置几个配置选项。一些有用的:
> npm set init.author.email "79228807@qq.com"
> npm set init.author.name "anbang"
> npm set init.license "MIT"
注意
如果中没有描述字段package.json,npm将使用README.md或README 的第一行。
该描述可帮助人们在搜索npm时找到您的包裹,因此在中进行自定义描述package.json对于使您的包裹更易于查找绝对有用。
如何定制package.json
如果您希望创建许多package.json文件,则可能希望自定义init过程中提出的问题,以便这些文件始终包含您期望的关键信息。
您可以自定义字段以及所问的问题。
为此,请在主目录中 创建一个自定义~/.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的文档。
https://github.com/npm/init-package-json
指定依赖项
要指定项目所依赖的软件包,您需要列出要在package.json
文件中使用的软件包。
您可以列出2种类型的软件包:
- “dependencies”:您的应用程序在生产中需要这些软件包。
- “devDependencies”:这些软件包仅在开发和测试时需要。
手动编辑 package.json
您可以手动编辑package.json。
您需要在包对象中创建一个dependencies指向该对象的属性。该对象将包含用于命名您要使用的软件包的属性。
它将指向一个semver表达式,该表达式指定与您的项目兼容的该项目的版本。
如果您有依赖项,则只需要在本地开发期间使用,请按照上述相同的说明进行操作,但要使用称为的属性 devDependencies
。
例如,以下项目在生产中使用my_dep
与主要版本1匹配的任何版本的软件包,并且要求my_test_framework
与主要版本3匹配的任何版本的软件包,但仅用于开发:
{
"name": "axihe-test",
"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
的中dependencies
:
npm install <package_name> --save
要将条目添加到您package.json
的中devDependencies
:
npm install <package_name> --save-dev
管理依赖版本
npm使用语义版本控制(或我们经常提到的语义版本控制)来管理软件包的版本和版本范围。
如果package.json
目录中有一个文件并运行npm install
,则npm将查看该文件中列出的依赖项,并使用语义版本控制下载最新版本。