npm

创建

通过 npm init 创建 package.json 文件。

配置

package.json的文件配置有:

  • name - 必选项,模块名称。命名时不能包含js、node、和url中需要转义的字符,不能以.和_为开头。
  • version - 必选项,模块的版本号。
  • main - 必选项,模块入口文件相对路径(相对于模块根目录)。
  • description - 可选项,模块功能描述,显示在 npm search "package-name" 中。
  • keywords - 可选项,数组类型,模块的关键字,显示在 npm search "package-name" 中。
  • author - 可选项,发起者信息。示例如下:
    {
      "author": {
          "name": "lijiahao8898",
          "email": "lijiahao8898@163.com",
          "url": "https://lijiahao8898.github.io/"
      }
    }
    
  • engines - 可选项,依赖的node版本。示例如下:
{
    "engines":{
        "node": ">= 0.8.0"
    }
}
  • repository - 可选项,源码托管地址。示例如下:
{
    "repository": {
    "type": "git",
    "url": "git url address",
}   ,
}
  • scripts - 可选项,自定义在cli中输入 npm "script" 时实际执行的程序。npm默认提供大量的script供我们调用。

  • dependencies、devDependencies - 可选项,用于配置模块的生产环境依赖包和开发环境依赖包。 当执行 npm install 时,npm会根据这两个配置项的值去下载安装相关的依赖包。 两者的区别是 devDependencies 是模块开发过程的依赖包(如:grunt只在开发时有用的模块),并且当其他模块需要依赖 当前模块时,当通过 npm install “package-name” 时会自动下载安装 dependencies 的包而不会下载 devDependencies 的包。

版本说明

版本号以主版本号 Major .副版本号 Minor .补丁版本号 Patch

engines、dependenciesdevDependencies 等配置项中可使用语义化版本号语法,具体如下:

  1. 1.1.1 - 精确下载安装1.1.1版本的包。
  2. >、=1.1.1 - 分别表示下载安装大于、小于等于、大于等于1.1.1版本的包。
  3. 1.0.1-1.1.1 - 表示版本范围是包含1.0.1到1.1.1版本的包。
  4. ~1.1.1 - 表示尽量采用靠近1.1.1版本的包,但可用的包版本范围是1.1.1-0到1.1.x-x版本的包。
  5. ~1.1 - 表示下载安装1.1.x-x版本的包。
  6. ~1 - 表示下载安装1.x.x-x版本的包。
  7. ^1.1.1 - 表示包版本范围是1.1.1到1.x.x-x。
  8. ^0.1.1 - 表示包版本范围是1.1.1到1.1.x-x。
  9. ^1.1 - 表示包版本范围是1.1.x-x到1.x.x-x。
  10. ^1 - 表示包版本范围是1.x.x-x。
  11. 空格、x - 表示任意版本即可。