购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 package.json

一个Node项目通常会用到许多第三方依赖,那么对于一个大型项目,如何描述和管理这些依赖就成为一个问题。其他的语言和工具,如Maven,使用XML格式来描述第三方jar包和项目本身。Python则是使用setup.py文件来描述项目中使用的第三方模块。Node的做法是通过package.json(描述文件)和npm(构建工具)来完成这一流程。

2.1.1 生成package.json

正如后缀名的描述,package.json是一个JSON文件,读者可以手动创建它并声明对应的字段,也可以通过npm提供的命令来生成该文件。


// 在控制台中按照顺序运行以下命令 
// 创建一个项目目录,并且使用npm初始化 
// 最终会在npmTest目录下生成package.json 
$ mkdir npmTest 
$ cd npmTest 
$ npm init 

控制台窗口会询问一系列的问题,包括项目的名称、描述、关键字、仓库地址等,读者可以根据自己项目的实际情况在控制台中输入对应内容并回车,输入的内容都会作为文件的一部分写入package.json中。如果想要使用默认配置,也可以什么都不填直接按回车,或者直接使用npm init -y命令,等到package.json生成后再去修改也一样。


$ npm init 
 
// 输出 
This utility will walk you through creating a package.json file. 
It only covers the most common items, and tries to guess sensible defaults. 
 
See `npm help json` for definitive documentation on these fields 
and exactly what they do. 
 
Use `npm install <pkg>` afterwards to install a package and 
save it as a dependency in the package.json file. 
 
Press ^C at any time to quit. 
package name: (npmtest) 
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /Users/likai/Desktop/workspace/npmTest/package.json: 
 
{ 
  "name": "npmtest", 
  "version": "1.0.0", 
  "description": "", 
  "main": "index.js", 
  "scripts": { 
     "test": "echo \"Error: no test specified\" && exit 1" 
  }, 
  "author": "", 
  "license": "ISC" 
} 
 
 
Is this OK? (yes) 

初始化的package.json文件内容如下。


{ 
  "name": "npmtest", 
  "version": "1.0.0", 
  "main": "index.js", 
  "scripts": { 
     "test": "echo \"Error: no test specified\" && exit 1", 
     "start": "node main.js" 
  }, 
  "keywords": [], 
  "author": "", 
  "license": "ISC", 
  "description": "" 
} 

其中,每个字段的含义如下。

• "name":当前项目的名称。

• "version":当前项目的版本号。

• "description":项目的描述。

• "main":项目的启动文件,默认名称为index.js,可自行修改。

• "scripts":一个JSON对象,可以在其中自定义npm命令。

• "keywords":项目关键字。

• "author":项目作者。

• "license":项目遵循的协议。

2.1.2 第三方模块

除了上面介绍的字段外,还有两个字段dependencies和devDependencies,这两个字段用于描述项目中使用到的第三方模块,在运行npm install命令的时候才会自动创建。 lnQdloVJyssGGx8XxkOtcVzOzpZmLJnIbxlwic2otCdv+/8wsRQjYPWPFLRUtkIU

点击中间区域
呼出菜单
上一章
目录
下一章
×