美文网首页
前端模块化总结——CommonJS

前端模块化总结——CommonJS

作者: H_DaYan | 来源:发表于2019-06-11 17:18 被阅读0次

    CommonJS

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

    范例

    a.js

    var x = 5;
    var addX = function(value) {
        return value + x;
    }
    
    module.exports.x = x;
    module.exports.addX = addX;
    

    b.js

    var example = require('./this.js');
    
    console.log(example.x);     // output: 5
    

    说明

    CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。

    module对象

    打印a.js的module对象

    // a.js
    ...
    module.exports.x = x;
    module.exports.addX = addX;
    console.log(module);
    

    输出结果

    Module {
      id: '.',
      exports: { x: 5, addX: [Function: addX] },
      parent: null,
      filename: 'E:\\2.study\\backbone\\app\\a.js',
      loaded: false,
      children: [],
      paths:
       [ 'E:\\2.study\\backbone\\app\\node_modules',
         'E:\\2.study\\backbone\\node_modules',
         'E:\\2.study\\node_modules',
         'E:\\node_modules' ] }
    

    由此可见,module拥有id、exports、parent等相关属性

    module对象属性解释

    • module.id 模块的识别符,通常是带有绝对路径的模块文件名。
      • 如果parents为null,返回.
      • 如果parents属性不为null,则返回当前文件的绝对路径
    • module.filename 模块的文件名,带有绝对路径。
    • module.loaded 返回一个布尔值,表示模块是否已经完成加载。
    • module.parent 返回一个对象,表示最先引用该模块的模块。
    • module.children 返回一个数组,表示该模块要用到的其他模块。
    • module.exports 表示模块对外输出的值
    module使用方法

    详解

    相关文章

      网友评论

          本文标题:前端模块化总结——CommonJS

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