【问题标题】:JInt require another js fileJInt 需要另一个 js 文件
【发布时间】:2018-02-14 19:22:46
【问题描述】:

我正在寻找一种在 JInt(C# Unity 的 JavaScript 解释器)中本地包含另一个 js 文件的方法。我知道我可以简单地将我的所有 js 文件连接到一个字符串并通过正常方式运行它。但我不想指定要加载的确切文件以及文件加载顺序。我在文件夹和子文件夹中有未定义数量的文件,我只知道哪个文件是 main.js。

是否有可能使用 nodejs 中的 require('file.js') 之类的东西,或者这是一个完全坏主意?

谢谢。

附:这个项目打算在 Unity-JInt 下运行。

【问题讨论】:

    标签: javascript c# unity3d jint


    【解决方案1】:

    我不确定 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();
            }
        }
    }
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2013-03-08
      • 2017-03-27
      • 2021-07-27
      • 2019-02-19
      • 2013-03-06
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多