Node.js中的" 包 "
-
CommonJS的包规范给程序员提供了组织模块的标准,减少沟通成本
-
包的使用:
- 所有模块放在一个文件夹(包名)
- 包放在当前项目中的node_modules文件夹下
- 包中定义一个index.js(文件名不可以更改)导出所有模块
- 引用包(约定大于配置)
-
导入包的执行过程 require("calc")
- 将calc当做核心模块加载,加载不成功
- 自动去当前目录中的node_modules中找文件名为calc的包
- 自动去calc找index.js的出口模块(导出的模块)
- 如果找不到index.js报错,如果想要改出口模块,需要package.json配置文件
-
package.js
| 名称 | 功能 |
|---|---|
| name | 包名称 |
| description | 包介绍,介绍包的功能 |
| version | 版本号,用于版本控制 |
| keywords | 关键词数组,用于在npm中搜索 |
| main | require引入包时优先检查此字段 |
| dependencies | 标记当前包所依赖的包列表,npm会自动加载依赖的包 |
| Author | 包作者 |
| License | 开源许可 |
{ "name": "calcpack", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { //可以通过npm run来执行 "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
-
创建包的标准方式
- npm init -y 自动创建package.json
-
一个标准包的结构
名称 |功能 |---|---| package.js |包描述文件 bin |存放可执行文件 lib |存放JavaScript代码 doc |存放文档 test |存放单元测试用例代码 README.md |说明文档,描述包的作用和用法
- 标准包执行过程
- 将calcpack当做核心模块加载,加载不成功
- 自动去当前目录中的node_modules中找文件名为calcpack的包
- 如果在calcpack中有package.json的话,并且指定了main属性的值,优先加载main指定的.js模块(出口模块)
- 如果没有package.json,或没有指定main属性,自动去calcpack找index.js的出口模块(导出的模块)
- 如果找不到index.js报错
浙公网安备 33010602011771号