Node.js NPM Package.json


章节


Node.js项目中,Package.json文件是应用程序的核心。Package.json文件是一个保存了项目元数据的配置文件,通常出现在Node.js应用程序的根文件夹中,npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。

Package.json 格式

Package.json文件内容通常如下所示。

{
    "name": "Hello World",
    "version": "0.0.1",
    "author": "qikegu.com",
    "description": "第一个node.js程序",
    "keywords":["node.js","javascript"],
    "repository": {
        "type": "git",
        "url": "https://path/to/url"
    },
    "license":"MIT",
    "engines": {"node": "0.10.x"},
    "bugs":{"url":"http://path/to/bug","email":"[email protected]"},
    "contributors":[{"name":"李四","email":"[email protected]"}],
    "scripts": {
        "start": "node index.js"
    },
    "dependencies": {
        "express": "latest",
        "mongoose": "~3.8.3",
        "handlebars-runtime": "~1.0.12",
        "express3-handlebars": "~0.5.0",
        "MD5": "~1.2.0"
    },
    "devDependencies": {
        "bower": "~1.2.8",
        "grunt": "~0.4.1",
        "grunt-contrib-concat": "~0.3.0",
        "grunt-contrib-jshint": "~0.7.2",
        "grunt-contrib-uglify": "~0.2.7",
        "grunt-contrib-clean": "~0.5.0",
        "browserify": "2.36.1",
        "grunt-browserify": "~1.3.0",
    }
}

如上所示,package.json文件包含了项目中各种信息配置。让我们详细了解一下一些常用信息:

  • Name: 应用程序名称
  • Version: 应用程序的版本
  • Description: 应用程序描述信息
  • Main: 指定了加载的入口文件,require('moduleName')就会加载这个文件。这个字段的默认值是模块根目录下面的index.js。
  • Scripts: 指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。
  • Author: 开发人员
  • License: 许可证
  • Dependencies: 指定了项目运行所依赖的模块
  • DevDependencies: 指定项目开发所需要的模块
  • Repository: 关于应用程序代码所在的存储库信息及网址等
  • Bugs: 报告应用程序bug的网址或电子邮件

Package.json 使用

package.json文件可以手工编写,也可以使用npm init命令自动生成。

$ npm init

这个命令采用互动方式,要求用户回答一些问题,然后在当前目录生成一个基本的package.json文件。所有问题之中,只有项目名称(name)和项目版本(version)是必填的,其他都是选填的。

有了package.json文件,直接使用npm install命令,就会在当前目录中安装所需要的模块。

$ npm install

如果一个模块不在package.json文件之中,可以单独安装这个模块,并使用相应的参数,将其写入package.json文件之中。

$ npm install express --save
$ npm install express --save-dev

上面代码表示单独安装express模块,--save参数表示将该模块写入dependencies属性,--save-dev表示将该模块写入devDependencies属性。

猜你喜欢

转载自www.cnblogs.com/jinbuqi/p/11576860.html