Node-包
2019-06-09 本文已影响0人
zhouhao_180
一、 Node.js 中 模块 和 包 的概念
Node.js 由三部分组成:ECMAScript 核心 + 全局成员 + 模块成员
模块成员:可以分为三大类: 核心模块、第三方模块、用户自定义模块
1、核心模块
1.1 什么是核心模块:
- 随着Node.js的安装包,一同安装到本地的模块,叫做核心模块;
- 例如:fs,path等模块,都是由Node.js官方提供的核心模块;
- 只要在计算机中,安装了Node这个应用程序,那么,我们的计算机中就已经安装了所有的 核心模块;
1.2、 如何使用核心模块:require('核心模块标识符')
2、第三方模块
2.1、什么是第三方模块:
- 一些非官方提供的模块,叫做第三方模块;
- 注意,第三方模块,并不在我们的计算机上;
- 如果需要使用某些第三方模块,必须去 npm 官网上下载才能使用;
2.2、如何使用第三方模块:
- 先从 npm 官网上下载指定的第三方模块
- 使用 require('第三方模块的名称标识符')来导入这个模块
- 根据 第三方模块的 官方文档,尝试使用
3、用户自定义模块
- 什么是用户模块:
- 程序员在自己项目中写的 Javascript 文件,就叫做 用户自定义模块;
- 如何使用用户模块:require('路径标识符')
二、 包的定义和使用
1、什么是包
1.1、英文名叫做 Packages,包是在模块基础上更深一步的抽象;
1.2、包的目的:方便分发和推广基于 CommonJS 规范实现的 应用程序 或 类库;
1.3、包可以看作是 模块、代码 和 其它资源 组合起来形成的 独立作用域;
2、规范的包结构
2.1、包都要以一个单独的目录而存在;
2.2、package.json 必须在包的顶层目录下;
2.3、package.json 文件必须符合 JSON 格式,并且必须包含如下三个属性:name, version, main
- name: 包的名字
- version: 包的版本号
- main: 表示包的入口文件
2.4、二进制文件应该在bin目录下;
2.5、javaScript代码应该在lib目录下;
2.6、文档应该在doc目录下;
2.7、单元测试应该在test目录下;
2.8、Node.js对包要求并没有那么严格,只要顶层目录下有package.json,并符合基本规范即可;
3、包描述文件 package.json
name:包的名称,必须是唯一
description:包的简要说明
version:符合语义化版本识别规范的版本字符串
keywords:关键字数据,通常用于搜索
maintainers:维护者数组,每个元素要包含name、email、web可选字段
contributors:贡献者数组,格式与maintainers相同。包的坐着应该是贡献者数据的第一个元素
bugs:提交bug的地址,可以是网址或者电子邮件地址
licenses:许可证数组,每个元素要包含type和url字段
repositories:仓库托管地址数组,每个元素要包含type、url和path字段
dependencies:包的依赖,一个关联数组,由包名称和版本号组成。
devDependencies:开发依赖项,表示一个包在开发期间用到的依赖项
三、自己尝试定义一个包含 加减乘除的 calc 计算器包
包-项目架构.png1、package.json文件
{
"name": "calc",
"varsion": "0.0.1",
"main": "./lib/main.js"
}
2、add.js文件
function add(x, y) {
return x + y
}
// 导出add
module.exports = add
3、main.js文件
// 导入add模块
const add = require(__dirname + "/add.js");
// 导出相关方法
module.exports = {
add
//reduce
//mut
//devide
}
4、调用calc模块
const calc = require(__dirname + "/calc");
var a = calc.add(1, 2);
console.log(a);
5、node_modules
新建node_modules文件夹,把刚刚的calc文件夹拖进这个文件夹里面,就可以直接引用calc模块了。
// const calc = require(__dirname + "/calc");
const calc = require("calc");
var a = calc.add(1, 2);
console.log(a);