工程目录结构

我们开发中可能依赖一些Node.js的内置库,也可能依赖一些第三方包。我们也可以编写自己的包,实际上一个Node.js工程其实就是一个npm包。这篇笔记我们简单了解npm包的目录结构,以便于我们更好的使用它们。

npm包的结构

npm包结构参考CommonJS定义,通常一个包中具有以下几个文件和文件夹:

工程
  |_node_modules  依赖包路径
  |_bin           可执行文件
  |_lib           JavaScript源代码
  |_doc           文档
  |_test          单元测试用例
  |_package.json  包描述文件

这些文件夹的作用都比较好理解,其中我们比较关注的就是package.json,这个文件中的描述信息就大致介绍了这个包是做什么用的。

package.json例子

以下代码是一个package.json的例子。

{
  "name": "node",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.16.3"
  }
}

这个文件的有如下几个主要作用:

  • 包含了项目的描述信息,项目名、版本、描述等
  • 包含了项目的依赖,我们项目目录中的node_modules通常是不会放到版本控制中的,其他人拿到我们的项目会根据package.json使用npm install命令自动下载依赖
  • 像make等构建工具一样,package.json中,scripts属性里包含了一些运行命令,可以使用npm工具执行,比如启动项目、测试项目等

package.json中包含以下常用字段:

  • name 包名
  • description 包简介
  • version 版本号
  • keywords 关键词数组,用于npm分类索引
  • repositories 托管源代码的位置列表
  • author 包作者
  • bin 包可以包含cli工具,通过npm全局安装就能使用这些工具,bin包含可执行文件路径
  • main 模块的入口
  • scripts 脚本说明对象,用于包管理器安装、编译、测试、卸载包
  • engines 支持的javascript引擎列表
  • dependencies 运行时依赖包
  • devDependencies 开发依赖包
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。