rust / SWC plugin /如何测试jsx?

mw3dktmi  于 2022-10-30  发布在  其他
关注(0)|答案(1)|浏览(126)

我试图通过做文档创建一个插件-https://swc.rs/docs/plugin/ecmascript/getting-started
我已经简化了这个例子。这个插件不会改变任何东西。

test!(
    Default::default(),
    |_| as_folder(TransformVisitor),
    boo,
    r#"foo === bar;"#,
    r#"foo === bar;"#
);

运行“货物测试”-很好!
验证jsx的测试:

test!(
    Default::default(),
    |_| as_folder(TransformVisitor),
    boo,
    r#"<main></main>"#,
    r#"<main></main>"#
);

运行“cargo test”-错误应为表达式
如何进行jsx验证测试?
这里有一个“test”宏文档的链接。我不明白该怎么做https://rustdoc.swc.rs/swc_core/ecma/transforms/testing/macro.test.html

w6lpcovy

w6lpcovy1#

SWC Playground上可以看到,<main></main>不是有效语法,至少在默认情况下不是。
作为Default::default()传递的参数是Syntax配置。您应该指定您期望的是JSX,类似于以下内容(未经测试):

use swc_ecma_parser::{EsConfig, Syntax};

test!(
    Syntax::Es(EsConfig {
        jsx: true,
        ..Default::default()
    }),
    |_| as_folder(TransformVisitor),
    boo,
    r#"<main></main>"#,
    r#"<main></main>"#
);

相关问题