工程目录结构
我们开发中可能依赖一些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进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。