Node-包

作者: zhouhao_180 | 来源:发表于2019-06-09 16:12 被阅读0次

    一、 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、用户自定义模块

    1. 什么是用户模块:
      • 程序员在自己项目中写的 Javascript 文件,就叫做 用户自定义模块;
    2. 如何使用用户模块: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 计算器包

    包-项目架构.png

    1、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);
    

    相关文章

      网友评论

          本文标题:Node-包

          本文链接:https://www.haomeiwen.com/subject/eodnxctx.html