JInt 需要另一个 js 文件
JInt require another js file
我正在寻找一种在 JInt 中本地包含另一个 js 文件的方法(javascript C# Unity 的解释器)。我知道我可以简单地将我所有的 js 文件连接到一个字符串并通过正常方式 运行 它。但我不想指定要加载的确切文件以及文件加载顺序。我在文件夹和子文件夹中有未定义数量的文件,我只知道哪个文件是 main.js.
是否有可能使用来自 nodejs 的 require('file.js') 之类的东西,或者这是一个完全糟糕的主意?
谢谢。
P.S。这个项目打算 运行 在 Unity-JInt 下。
我不确定jint是否提供这样的功能。但是你可以试试
假设您有两个 js 文件,如下所示。
// file1.js
log('Hiii.. I am file 1');
require('C:\file2.js');
// file2.js
log('Hiii.. I am file 2');
您可以构建 require
,如下所示。
using System;
using Jint;
using Jint.Native;
namespace JintSample
{
class Program
{
static void Main(string[] args)
{
var engine = new Engine();
JsValue require(string fileName)
{
string jsSource = System.IO.File.ReadAllText(fileName);
var res = engine.Execute(jsSource).GetCompletionValue();
return res;
}
engine.SetValue("require", new Func<string, JsValue>(require))
.SetValue("log", new Action<string>(System.Console.WriteLine));
JsValue name = engine.Execute(@"require('C:\file1.js')").GetCompletionValue();
}
}
}
希望对您有所帮助。
我正在寻找一种在 JInt 中本地包含另一个 js 文件的方法(javascript C# Unity 的解释器)。我知道我可以简单地将我所有的 js 文件连接到一个字符串并通过正常方式 运行 它。但我不想指定要加载的确切文件以及文件加载顺序。我在文件夹和子文件夹中有未定义数量的文件,我只知道哪个文件是 main.js.
是否有可能使用来自 nodejs 的 require('file.js') 之类的东西,或者这是一个完全糟糕的主意?
谢谢。
P.S。这个项目打算 运行 在 Unity-JInt 下。
我不确定jint是否提供这样的功能。但是你可以试试
假设您有两个 js 文件,如下所示。
// file1.js
log('Hiii.. I am file 1');
require('C:\file2.js');
// file2.js
log('Hiii.. I am file 2');
您可以构建 require
,如下所示。
using System;
using Jint;
using Jint.Native;
namespace JintSample
{
class Program
{
static void Main(string[] args)
{
var engine = new Engine();
JsValue require(string fileName)
{
string jsSource = System.IO.File.ReadAllText(fileName);
var res = engine.Execute(jsSource).GetCompletionValue();
return res;
}
engine.SetValue("require", new Func<string, JsValue>(require))
.SetValue("log", new Action<string>(System.Console.WriteLine));
JsValue name = engine.Execute(@"require('C:\file1.js')").GetCompletionValue();
}
}
}
希望对您有所帮助。