基于JVM的服务端javascript平台Ringo.js入门(三):模块以及包实现

本文介绍了Ringo.js中的模块系统,遵循CommonJS Modules 1.1规范。每个.js文件被视为一个模块,通过exports导出属性。require函数用于导入模块,返回模块导出的对象。Ringo还提供了module对象,包含模块的ID、路径、URI和exports属性。此外,文章讨论了模块ID、模块路径、包的概念以及package.json文件的作用。Ringo的模块加载机制包括缓存、重新加载和生产模式下的行为。还包括Ringo对CommonJS的扩展,如include和解构赋值的使用。
摘要由CSDN通过智能技术生成
  这次内容是我比较感兴趣的部分,即所谓模块化支撑。通过他们,Ringo提供给了相当好的功能解偶机制(node.js的npm也源于node.js中类似机制的实现)。我的计划是,利用这个机制在javaweb上仿制wordpress的plugin插件功能。
  在研究过程中,主要关注package以及module在require时的查找路径方式。
  ringo的模块与包的实现与node.js以及vertx实现同源,common-js标准。其module依赖cj-module1.1标准,其package依赖cj-package1.0标准。
  
  这里偷个懒,在网上看到有个同学已经把官网的说明翻译过来了。引用其中的大部分内容:http://www.skyatlas.net/?s=ringojs

Modules in Ringo

Ringo实现了CommonJS Modules1.1规范,在Javascript世界中,存在多个可用Module patterns,但是在Ringo的世界里,我们只用这个:

  • 每一个文件就是一个模块,不需要特别的语法申明
  • 任何function或者其他属性,只要你在module(文件)中,attatch到exports对象上,他们就被导出(让外部可见),成为这个模块的导出属性
  • require(‘foobar’)会返回一个拥有模块所有exposed属性的对象,代表foobar模块

剖析Module

In Ringo,每一个javascript文件都被当做是一个mo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值