如何创建加载"modules"的函数



所以我正在为一个名为FiveM的游戏创建一个简单的资源,不管怎样,我有一个叫utils的文件夹,它为每个"模块";所有这些都包括一个文件名this.js,它具有自定义功能,如日志记录等。所有这些都是用module.exports完成的,所以我的问题是我将如何继续创建一个函数来加载指定的mod,我已经得到了大部分。我似乎无法工作的是它实际上正在加载。。。

到目前为止,我得到了:

const fs = require( 'fs' )
const path = require( 'path' )
const MOD = ( mod ) => {
/*
* Load them mods into memory
* */
fs.access( path.join( __dirname, `..\${mod}\this.js` ), fs.F_OK, ( err ) => {
if ( err )
return console.error( `Module ${mod} @ utils\${mod} does not exist!` )
console.log( `Loaded ${mod} @ utils\${mod}` )
return require( path.join( __dirname, `..\${mod}\this.js` ) )
} )
}
exports.MOD = MOD
MOD( 'colors' )
LOG( `${ Colors.yellow } Hello, it works!` )

输出:

在资源gus-rp:ReferenceError中加载脚本fivem.js时出错:颜色未定义

我注意到,如果我不能理解,我需要传递括号中的函数,这是我的意思

const { Function } = require( 'path/to/function' )

如果我在/utils/logging/this.js中有很多功能,那会让我一团糟

如何在一个文件中加载所有模块导出?

要在文件中加载所有导出,需要将它们全部导出。标准模式为

module.exports = { Function1, Function2 };

然后在你想在上使用的文件上

const moduleFile = require(‘module.js’);
moduleFile.Function1();
moduleFile.Function2();

请注意,您需要将文件加载到要使用的变量中才能使其工作。你的MOD加载程序功能不会通过加载MOD使文件在其他文件中可访问,除非你将该功能导出到你想要的名称

相关内容

最新更新