CommonJS模块化与规范

CommonJS模块的特点:

  1-> 所有代码都运行在模块作用域,不会污染全局作用域。

    Node 应用由模块组成,采用 CommonJS 模块规范。

    每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

  2-> 模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。

  3-> 模块加载的顺序,按照其在代码中出现的顺序。

实际应用:

  require 引入模块 输入模块

  使用方法:require('模块名')

    不指定路径: 先找系统模块-> 再从项目环境找node_modules|bower_components (依赖模块)->not found
    指定路径 : 指定路径 -> not found
    require(./utils).xx 按需引用

  exports 导出,批量输出 都是属性     

    exports.自定义属性=值(any) 输出带接口 require(模块文件名)=modA modA是个模块实例{自定义属性}

    module 默认输出 any 只能输出一次
        module.exports = {
                自定义属性:值
                }

  module.exports=对象/fn/class require('..')=modA modA 是一个fn或者是类class本身.

  注:commonJS 是 nodejs 默认模块管理方式,不支持es6的模块化管理方式,但支持所有es6+语法.

 

posted @ 2019-10-21 20:42  Scok  阅读(2007)  评论(0编辑  收藏  举报