apolloxlua标准库 require 函数说明

简介:

使用方式

require("文件地址")

在apollox物理设计上,支持lua的require模块方式,require方法可以在web模式和tool方式使用。 本文简单介绍一下,在web模式下的配合vfs的使用。

require的具体细节和lua的实现方式类似, 模块作为程序的最小单元存在,模块与模块之间的关系,应该是隔离的。 在web模式下使用vfs组织模块查找的路径。

使用require在某种情况下会有限制,他们分别是如果模块的语法存在错误,将无法交织到模块的代码抛出错误。 如果vfs里并没有该模块的平坦模式的代码, 会抛出错误。如果vfs配置了baseURL,一般vfs在内存无法查找到该文件将会根据baseURL的路径进行远程加载该模块。

一个简单示例的vfs的视图

输入图片说明

lua_module.lua 的代码如下



--请注意这个代码在web console示例程序中是无法执行的。
--这是一个lua的new模块,module case 里使用

local m = {}

local hellow  = function () 
    print("hellow, i am a module method");
end

m.hellow = hellow;

return m;


lua_duplicatedef.lua 的代码如下


--请注意这个代码在web console示例程序中是无法执行的。
--这是一个lua的new模块,module case 里使用

local other = require("build/lua_module.lua")
local m = {}

local hellow  = function () 
    print("hellow, i am duplicate def");
end

m.hellow = hellow;
m.other  = other.hellow;
return m;

module include case 的代码如下

//////////
/// 模块测试
/////////
var module = require("build/lua_module.lua");

if(module) {
    module.hellow();
}

var module2 = require("build/lua_duplicatedef.lua");

if(module) {
    module2.hellow();
    module2.other();
}

执行结果:

输入图片说明

相关文章
|
8月前
|
存储 程序员 编译器
4.1 C++ Boost 字符串处理库
Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质量和性能,并且可以适用于多种不同的系统平台和编译器。Boost库已被广泛应用于许多不同领域的C++应用程序开发中,如网络应用程序、图像处理、数值计算、多线程应用程序和文件系统处理等。
229 0
|
1月前
egg.js 24.12sequelize模型-where操作符
egg.js 24.12sequelize模型-where操作符
25 1
egg.js 24.12sequelize模型-where操作符
|
1月前
|
PHP
include和require的区别
include和require的区别
31 0
|
C语言
函数 require
函数 require
78 0
|
网络架构
lodash函数绑定新函数
lodash函数绑定新函数
60 0
lodash函数绑定新函数
lodash函数防抖动
lodash函数防抖动
97 0
lodash函数根据指定时间延迟
lodash函数根据指定时间延迟
156 0
|
前端开发 JavaScript
|
JavaScript 前端开发 Java
碰到Cannot find module了吗? 来看看require函数与NodeJS模块加载
目录 下面谈谈require函数 先搞清楚是什么 require能用来干什么? 非内置的模块,也想用require来加载怎么做? require函数加载原理 那么在npm registry上的库,怎么进行加载? 好了,前面提了几个围绕了是否重新开一个NodeREPL终端来require JS库的问题 解答”Cannot find module"问题 解答是否需要重启Node REPL 或者修改代码是否需要重启正在的NodeJS进程的问题 解答为何npm install lodash之后为何能够直接在node终端直接require 构建代码共享,开源文化 总结
1041 0
碰到Cannot find module了吗? 来看看require函数与NodeJS模块加载
RequireJS中的require如何返回模块
  requirejs中定义AMD模块规则如下: define(function(){ var ProductManager={ Create:function(){ console.
1248 0