15

v8 の .js スクリプト ファイル内に別のスクリプト ファイルを含めるにはどうすればよいですか?
HTML には <script> タグがありますが、v8 組み込みプログラム内でどのように実行できますか?

4

2 に答える 2

25

この機能を手動で追加する必要があります。これが私が行った方法です。

Handle<Value> Include(const Arguments& args) {
    for (int i = 0; i < args.Length(); i++) {
        String::Utf8Value str(args[i]);

        // load_file loads the file with this name into a string,
        // I imagine you can write a function to do this :)
        std::string js_file = load_file(*str);

        if(js_file.length() > 0) {
            Handle<String> source = String::New(js_file.c_str());
            Handle<Script> script = Script::Compile(source);
            return script->Run();
        }
    }
    return Undefined();
}

Handle<ObjectTemplate> global = ObjectTemplate::New();

global->Set(String::New("include"), FunctionTemplate::New(Include));

基本的に、現在のコンテキスト内で JavaScript ファイルを読み込んで実行できる、グローバルにアクセス可能な関数を追加します。私は自分のプロジェクトでそれを使用していますが、夢のように機能します。

// beginning of main javascript file
include("otherlib.js");
于 2009-08-23T06:34:10.030 に答える
3

Node.jsまたはCommonsJS準拠のランタイムを使用している場合は、require(module);を使用できます。http://jherdman.ca/2010-04-05/understanding-nodejs-require/にそれについての素晴らしい記事があります

于 2010-11-24T19:48:18.270 に答える