commonjs 订阅
CommonJS
信息
操作系统
跨平台
开发语言
JavaScript
开源协议
未知
CommonJS
CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标 准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中。在兼容CommonJS的系统中,你可以使用 JavaScript程序开发: 服务器端JavaScript应用程序 命令行工具 图形界面应用程序 混合应用程序(如,Titanium或Adobe AIR)
收起全文
精华内容
下载资源
问答
  • CommonJS

    2021-01-07 12:11:55
    <div><p>Is JSBlocks working with CommonJs libraries like Browserify?</p><p>该提问来源于开源项目:astoilkov/jsblocks</p></div>
  • CommonJs

    2021-03-21 16:40:56
    CommonJS 在nodejs中,由于有且仅有一个入口文件(启动文件),而开发一个应用肯定会涉及到多个文件配合,因此,nodejs对模块化的需求比浏览器端要大的多 由于nodejs刚刚发布的时候,前端没有统一的、官方的模块化...

    CommonJS

    在nodejs中,由于有且仅有一个入口文件(启动文件),而开发一个应用肯定会涉及到多个文件配合,因此,nodejs对模块化的需求比浏览器端要大的多
    在这里插入图片描述
    由于nodejs刚刚发布的时候,前端没有统一的、官方的模块化规范,因此,它选择使用社区提供的CommonJS作为模块化规范

    模块的导出

    要理解模块的导出,首先要理解模块的含义

    什么是模块?

    模块就是一个JS文件,它实现了一部分功能,并隐藏自己的内部实现,同时提供了一些接口供其他模块使用

    模块有两个核心要素:隐藏暴露

    隐藏的,是自己内部的实现

    暴露的,是希望外部使用的接口

    任何一个正常的模块化标准,都应该默认隐藏模块中的所有实现,而通过一些语法或api调用来暴露接口

    暴露接口的过程即模块的导出

    在这里插入图片描述

    模块的导入

    当需要使用一个模块时,使用的是该模块暴露的部分(导出的部分),隐藏的部分是永远无法使用的。

    当通过某种语法或api去使用一个模块时,这个过程叫做模块的导入

    CommonJS规范

    CommonJS使用exports导出模块,require导入模块

    具体规范如下:

    1. 如果一个JS文件中存在exportsrequire,该JS文件是一个模块
    2. 模块内的所有代码均为隐藏代码,包括全局变量、全局函数,这些全局的内容均不应该对全局变量造成任何污染
    3. 如果一个模块需要暴露一些API提供给外部使用,需要通过exports导出,exports是一个空的对象,你可以为该对象添加任何需要导出的内容
    4. 如果一个模块需要导入其他模块,通过require实现,require是一个函数,传入模块的路径即可返回该模块导出的整个内容

    nodejs对CommonJS的实现

    为了实现CommonJS规范,nodejs对模块做出了以下处理

    1. 为了保证高效的执行,仅加载必要的模块。nodejs只有执行到require函数时才会加载并执行模块

    2. 为了隐藏模块中的代码,nodejs执行模块时,会将模块中的所有代码放置到一个函数中执行,以保证不污染全局变量。

       (function(){
           //模块中的代码
       })()
      
    3. 为了保证顺利的导出模块内容,nodejs做了以下处理

      1. 在模块开始执行前,初始化一个值module.exports = {}
      2. module.exports即模块的导出值
      3. 为了方便开发者便捷的导出,nodejs在初始化完module.exports后,又声明了一个变量exports = module.exports
       (function(module){
           module.exports = {};
           var exports = module.exports;
           //模块中的代码
           return module.exports;
       })()
      
    4. 为了避免反复加载同一个模块,nodejs默认开启了模块缓存,如果加载的模块已经被加载过了,则会自动使用之前的导出结果

    展开全文
  • commonJS

    2019-10-03 18:23:58
    CommonJS API定义了很多普通应用程序(主要指非浏览器的应用 )使用的API,从而填补了官方Javascript标准定义的API的空白。 NodeJS和CommonJS之间的关系 CommonJS是一种规范,NodeJS是这种规范的实现。 转载于:...

    CommonJS API定义了很多普通应用程序(主要指非浏览器的应用

    )使用的API,从而填补了官方Javascript标准定义的API的空白。

    NodeJS和CommonJS之间的关系

    CommonJS是一种规范,NodeJS是这种规范的实现。

    转载于:https://www.cnblogs.com/quan-quanquan/p/5424636.html

    展开全文
  • commonjs

    2019-10-05 14:13:49
    nodejs是commonjs一个很好的实现 转载于:https://www.cnblogs.com/coding4/p/5585714.html

    nodejs是commonjs一个很好的实现

    转载于:https://www.cnblogs.com/coding4/p/5585714.html

    展开全文
  • Commonjs

    2018-06-11 14:27:00
    早就 听说 有 用于 本地编程的javascript 作为本地编程语言的这种特殊应用形式,函数式语言由于其固有的易于并行计算的特性 ...CommonJs API 定义 很多普通应用程序(主要 指非浏览器的应用)使用的API...

     早就 听说 有 用于 本地编程的javascript  作为本地编程语言的这种特殊应用形式,函数式语言
    由于其固有的易于并行计算的特性

    Javascript 是一个强大面向对象语言官方 javascript 标准 定义的API 是为了构建基于浏览器的应用程序。然而
    并没有 定于一个用于更广泛的应用程序的标准库

    CommonJs API 定义 很多普通应用程序(主要 指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python
    ,Ruby和Java标准库。这样的话,开发者可以使用 CommonJS API 编写应用程序,然后 这些 应用 可以 运行在不同的Javascript
    解释器 和不同的主机环境中。在兼容Commonjs的系统中,你可以实用Javascript程序开发:
    在 学习 webpack 的时候 了解到
    官方Javascript 标准定义的API 是为了构建基于浏览器的应用程序,但是并没有定义一个用于更广泛
    的应用程序的标准库。 Commonjs APIs定义了很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白
    开发者可以使用Commonjs API编写应用程序这些应用可以运行在不同的JavaScript解析器和不同的主机环境中
    CommonJs是一种 规范,Nodejs 便是这种规范的体现 webpack也是以commonjs的形式书写。node.js
    的模块系统,就是参照 Commonjs规范实现的。
    CommonJS 中有一个全局性方法 require() 用于加载模块


    require() 方法接受一个参数,即模块的唯一ID.require根据外部模块ID,返回模块输出的API.如果
    外部模块被require的时候 还没有执行完,require至少应该返回该模块的exports
    如果必须的模块不存在 require方法应该抛出一个异常。


    每个模块中都有一个自由变量 exports,它是一个对象,模块对外输出的API就绑定在这个对象上,且exports 是模块对外输出API唯一的途径
    每个模块中都必须有一个自由变量module,它是对象,这个对象有一个id属性,表示该模块的id.是只读属性。module对象还可以 有一个 uri
    属性 表示这个模块被加载来源
    模块 id是由 “\”分开的词组成,每个词必须用 驼峰式 或者是“.”".."模块ID中可以出现“.js”后缀


    var module={
    exports:{}
    };
    (function (module,exports){
    exports.multiply=function(n){return n*1000};
    }(module,module.exports))


    var module={
    exports:{}
    };
    (function (module,exports){
    exports.multiply=function(n){return n*1000};
    }(module,module.exports))

    向一个立即执行的函数中提供 module 和 exports 两个外部变量, 模块 放在立即执行函数里面
    模块的输出值放在module.exports 之中,这样就实现了模块的加载

    CommonJS/AMD/CMD的区别倒是什么?AMD/CMD/CommonJD都是模块化开发的标准,、
    目前对应的实现是RequireJS/SeaJS/nodeJS  CommonJS主要针对服务器端
    其它两个主要针对浏览器端

    AMD/CMD 虽然都是并行加载js文件 但还是有所区别 AMD是预加载 在并行加载js文件的
    同时,还会解析执行该模块(因为还需执行,所以在加载某个模块前,这个模块的依赖模块需要先加载完成)
    而cmd是懒加载 虽然会一开始就并行加载js文件 但是不会执行 而是在需要的时候才执行。


    AMD 特点是 加载快速,尤其遇到多个大文件 因为并行解析 所以同一时间可以解析多个文件
    但是由于并行加载 一步处理加载顺序不一定 可能会造成一些困扰

    cmd的特点是因为只有在使用的同时 才会解析执行 js文件 因此 每个js文件的执行
    顺序在代码中是有体现的 是可控的 缺点是 执行 等待 时间 会叠加 因为每个文件
    执行时是 同步执行(串行执行) 因此时间是所有文件解析执行时间之和 尤其在文件
    较多较大时 这种缺点 尤为明显

    服务器端 javascript应用程序
    命令行工具
    图形界面应用程序
    混合应用程序
    API层面定义
    二进制 二进制数据对象(字节数组/或字符串)
    编码 编码和字符集
    io
    fs
    系统 系统接口
    断言 测试 单元测试
    套接字
    事件队列
    gongren
    控制台

    目前js 仅仅包括基本的API,如果要作为一个 server 端的编程语言,像IO,FS,i18n,package等等特性都没有,
    Commonjs 是一个组织,它让js可以在共同的方向上做努力,来完善js 尽量 Common js现在 还没有一个正式版发布
    但是很多方向的草案的实现都已经取得很好的成果。 现在例如非常流行的Nodejs

    问题在于 commonjs 的这个 module规范设计之初是为了server端设计的,它是一个同步的模式。
    但是 这种模式 并不适合 浏览器端,如果浏览器同步模式 一个一个加载模块 那么打开将会非常的慢

     

    转载于:https://www.cnblogs.com/naliang/p/Commonjs.html

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,031
精华内容 5,212
关键字:

commonjs