#plugin #how #hello-world #nodex #write #show

nodex-plugin-helloworld

一个小型库,展示如何编写 nodex 插件

2 个不稳定版本

0.2.0 2022年3月6日
0.1.0 2022年1月26日

44#hello-world

MIT 许可证

15KB

这是一个展示如何编写 nodex-plugin 的示例

只需将 nodex 作为依赖项添加

[package]
name = "nodex-plugin-helloworld"
version = "0.1.1"
edition = "2021"

[dependencies]
nodex = "^0.2"

然后使用指定的签名导出您的函数

lib.rs

use nodex::prelude::*;

pub fn init(env: NapiEnv, mut object: JsObject) -> NapiResult<()> {
    object.set_named_property(
        "hello_world",
        env.func(|this, ()| {
            let env = this.env();
            let res: JsValue = env.run_script(
                r#"
                    console.log("hello, nodex!");
                "#
            )?;
            Ok(res)
        })?,
    )?;

    Ok(())
}

因此,您可以将此crate用作nodex项目的依赖项

插件示例

[package]
name = "plugin"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["cdylib"]

[dependencies.nodex]
features = ["v8"]
version = "^0.1"

[dependencies.nodex-plugin-helloworld]
version = "0.1"

lib.rs

use nodex::prelude::*;
nodex::napi_module!(init);

fn init(env: NapiEnv, exports: JsObject) -> NapiResult<()> {
    nodex_plugin_helloworld::init(env, exports)?;

    Ok(())
}

依赖项

~13MB
~27K SLoC