使用package.json
本地管理 npm 包的最好方式是创建一个 package.json 文件。
一个 package.json 文件好处:
- 列出你的项目依赖的包
- 指出包在你项目中使用的版本
- 使您的构建可重复,因此更容易与其他开发人员共享
一个package.json必须具备
- name
- 全部小写
- 没有空格的字
- 破折号和下划线允许
- version
- 以...的形式 x.x.x
例:
{
"name": "my-awesome-package",
"version": "1.0.0"
}
创建一个 package.json
有如下两种创建方式:
1)运行命令行,问答方式
打开命令行,输入如下命令:
> npm init
这将启动一个命令行调查问卷,最后根据回答在目录中创建一个package.json的构建文件。
2)根据当前目录信息,创建一个默认package.json,不需要回答任何问题
打开命令行,输入如下命令:
> npm init --yes
亲测,空目录下生成如下:
{
"name": "npm",
"version": "1.0.0",
"description": "",
"main": ".npm-init.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
- name:当前目录名称
- version:总是 1.0.0
- description:readme文件第一行,或者一个空字符串 ""
- main:总是 index.js
- scripts:默认情况下创建一个空的test脚本
- keywords:空的
- author:空的
- license: ISC
- bugs:来自当前目录的信息(如果存在)
- homepage:来自当前目录的信息(如果存在)
为init做默认的设置:
> npm set init.author.email "[email protected]"
> npm set init.author.name "xiaoxiaoxiao"
那么下一次,npm init构建项目时,package.json中的author默认显示如下:
"author": "xiaoxiaoxiao <[email protected]>",
注意:
如果package.json中没有description,那么npm使用README.md文件第一行来代替。这个可以帮助别人快速搜索到你的npm包
3)dependencies 和 devDependencies
dependencies 应用程序上生产环境
命令行方式添加一条到package.json的dependencies:
npm install <package_name> --save
package.json中手动编写:
dependencies:{
"my_test_framework": "^3.1.0" # 匹配主要版本3的包的任何版本 ^表示任意
}
devDependencies 应用程序开发测试中
命令行方式添加一条到package.json的devDependencies:
npm install <package_name> --save-dev
两者区别
举个例子,比如我们写一个项目要依赖于jQuery,没有这个包的依赖运行就会报错,这时候就把这个依赖写入dependencies;
而我们使用的一些构建工具比如glup、webpack这些只是在开发中使用的包,上线以后就和他们没关系了,所以将它写入devDependencies。
注意:npm install两者都会下载