如何在SWC插件中打印日志用于调试?
SWC插件调试日志无法输出的解决方法
检查tracing初始化与依赖配置
确保插件代码中tracing的订阅器初始化正确,同时依赖配置完整:- 在
Cargo.toml中添加tracing-subscriber依赖:tracing-subscriber = { version = "0.3", features = ["fmt"] } - 在插件入口函数中初始化订阅器(仅在开发环境启用,避免影响生产构建):
use tracing_subscriber::fmt; #[plugin_transform] pub fn process(...) -> ... { #[cfg(debug_assertions)] let _ = fmt::try_init(); // 测试日志输出 tracing::info!("插件开始处理代码节点"); // 你的插件逻辑... }
- 在
改用标准输出/错误输出
如果tracing仍不生效,直接用标准库的输出方式更可靠,SWC会将这些内容转发到终端:use std::io::{self, Write}; // 打印调试信息到标准错误流,避免被正常输出覆盖 writeln!(io::stderr(), "当前处理的节点详情:{:?}", node).unwrap();配置运行时日志环境变量
使用tracing时,需要通过环境变量指定日志级别,运行SWC时执行:RUST_LOG=info swc src -d dist
内容的提问来源于stack exchange,提问作者BruceWan
相关产品推荐
相关产品推荐

