使用packages.json文件——Working with package.json
管理本地下载的npm packages(modules)的最好方法是使用package.json
文件。
一个package.json文件:
- 包含你的项目所依赖的package的列表。
- 允许你使用semiantic versioning rules去指定你的项目所依赖的packages的版本。
- 使你的项目可以复制,因此可以更容易的分享给其他开发者。
要求 requirements
一个package.json必须具有:
name
- 全部小写
- 一个单词,不允许有空格
- 允许有
-
和_
version
- x.x.x格式
- 符合semver psec
例如
{
"name":"my-awesome-package",
"version":"1.0.0"
}
创建一个package.json
有两个基本的方法来创建一个package.json文件。
1. 使用CLI询问方式(问卷)
创建一个你指定值的package.json,运行如下命令(cmd)
npm init
这会初始化一个命令行问卷即在命令行呈现一些列的问题,然后你提供一些值,最后会在该命令行运行的目录生成一个package.json文件。
2.生成一个默认的package.json文件
创建该文件只需运行npm init
命令附带一个--yes
或者-y
的flag:
npm init -y
该方法将会生成一个从该项目中汲取一些信息的默认package.json文件。
- name: 当前目录名
- version: 始终1.0.0
- description: 自述文件中的信息或空字符串””
- main: 始终index.js
- scripts: 默认情况下创建一个空的test脚本
- keywords: 空
- author: 空
- license: ISC
- bugs: 当前目录中的信息 (如果存在)
- homepage: 当前目录中的信息 (如果存在)
你也可以使用命令行设置一些初始化的选项,常用的有:
npm set init.auther.email "xxx@npmjs.com"
npm set init.auther.name "npmjs"
npm set init.license "MIT"
注意:
如果在package.json中没有description字段,那么npm将使用README.md
第一行的文字或者README
文件来代替。description帮助人们在搜索npm时发现你的package,所以自定义个description在package.json文件将会使你的package更容易被找到。
怎样去自定义package.json的命令行问卷。
如果你想要创建很多的package.json文件,那么你也许想要自定义一些初始化时的问题,如此这些package.json将会包含一些你想要的重要信息。你可自定义一些字段来询问其值。
要做到这些,你需要创建一个.npm-init.js
文件在你的home目录里。
一个简单的.npm-init.js应该看起来类似下面这样。
module.exports = {
customeField:'Custom Field',
otherCustomField:'This is field for key'
}
在你的home目录结合该文件运行npm init
将会生成一个包含那些信息的package.json文件。
{
customField: 'Custom Field',
otherCustomField: 'This field is really cool'
}
指定依赖
指定你的项目需要的依赖前,你需要在package.json中列出你将要用到的这些packages。这里你需要列出两类packages:
-
dependencies
:这类packages将在你的产品应用中引入和使用到。 -
devDependencies
:这类packages只是在你开发和测试时要使用到的。
手动编辑你的pacakge.json
你可以手动编辑你的package.json。你可以在package.json文件中创建一个dependencies
属性,该属性是一个对象,该对象的值便是那些你的项目中所要依赖的packages的名字。它将指向一个semver表达式,该表达式指定该项目与你的项目兼容的版本。
在你的项目里那些只是本地开发使用到的packages,那么可以使用上面同样的方式列出packages到devDependensices
中。
例如:一个项目在最终产品中使用到了版本为1的my_dep的package,在开发时使用到了版本为3的my_test-framework的package:
{
"name": "my_package",
"version": "1.0.0",
"dependencies": {
"my_dep": "^1.0.0"
},
"devDependencies" : {
"my_test_framework": "^3.1.0"
}
}
安装时的–save和–save-dev flags
添加依赖到package.json的较简单方法是在命令行使用npm install
命令时使用flags。即--save
(默认)或者--save-dev
。
添加一条到package.json的dependencies:
npm istall <package_name> --save
添加一条到package.json的devDependencies:
npm istall <package_name> --save-dev
管理依赖的版本
npm使用语义化版本控制(Semantic Versioning),即一直说的SemVer
,来管理和组织版本。
如果在你的目录里有一个package.json文件那么你运行npm install
,npm将按照SmeVer来下载该文件中的最新版本的依赖。
更多
想要了解更多关于packge.json的功能,查看第八章的”本地下载”的相关视频。
学习更多关于semantic versioning的信息,点击这里。https://docs.npmjs.com/gettin…