创建package.json是用来管理本地包的最好的方法。
一个package.json文件可以提供很多有用的事情:
1.它描述了你的项目依赖一些包
2.它指定了包的版本范围
3.它使你的项目分享给其他开发者更容易
要求
最小限度的要求:
-
"name"
- 全部小写
- 一个单词,不能有空格
- 允许破折号和下划线
-
"version"
- 以x.x.x的格式
- 遵循semver spec
例子
{
"name": "my-awesome-package",
"version": "1.0.0"
}
创建一个package.json
npm init
这将根据你的输入在当前目录创建一个package.json文件。
标识--yes
npm init --yes
这将根据默认模板快速创建一个package.json文件。
这将写到当前目录的package.json
{
"name": "my_package",
"description": "",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"repository": {
"type": "git",
"url": "https://github.com/ashleygwilliams/my_package.git"
},
"bugs": {
"url": "https://github.com/ashleygwilliams/my_package/issues"
},
"homepage": "https://github.com/ashleygwilliams/my_package"
}
- name:默认是作者名,如果在git目录则是目录名。
- description:空
- version:1.0.0
- main:index.js
- scripts:创建一个空的测试脚本
- keywords:空的
- author:空的
- license:ISC
- respository:和当前所在目录有关
- bugs:和当前所在目录有关
- home:和当前所在目录有关
你可以通过以下命令配置一些默认信息
npm set init.author.email "wombat@npmjs.com"
npm set init.author.name "ag_dubs"
npm set init.license "MIT"
note:
如果package.json中没有description字段,NPM使用readme.md的第一行或readme作为description。description有助于人们找到你的NPM包;一个自定义的描述可以让你的包更容易被发现。
定制init
同样你可以自己定制一些初始化信息,在初始化的时候这些信息会自动放到package.json中。你需要把额外的初始化信息放到 .npm-init.js
中,这个文件需要在根目录中创建。
如果是windows系统,则放在如下目录
X:\Users\用户名\.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'
}
Customizing the questions is also possible, by using the prompt function.
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 作为开发时的依赖。你可以如下配置:
{
"name": "my_package",
"version": "1.0.0",
"dependencies": {
"my_dep": "^1.0.0"
},
"devDependencies" : {
"my_test_framework": "^3.1.0"
}
}
--save 和 --save-dev
使用命令为你的项目添加依赖是更简单方便的。你可以使用 npm install
命令下载包到本地。运用标志位可以自动添加依赖项到package.json文件中。
添加到package.json的dependencies:
npm install <package_name> --save
添加到package.json的devDependencies:
npm install <package_name> --save-dev
管理依赖版本
npm使用Semantic Versioning(我们通常简称为SemVer)来管理包的版本范围。
如果当前目录存在package.json文件,使用npm install
命令,npm将会根据 semver rules 下载最新的依赖包。
你可以通过 Getting Started "Semver" page学习semantic versioning。
网友评论