From 73229fd9cd4748a415d897105019abe67f62a823 Mon Sep 17 00:00:00 2001 From: Ward Peeters Date: Fri, 26 Nov 2021 15:03:51 +0100 Subject: [PATCH] Fix require statements with plain template literal --- .../js/core/src/dependency_collector.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/transformers/js/core/src/dependency_collector.rs b/packages/transformers/js/core/src/dependency_collector.rs index 6b2c4a34185..e2cfce09032 100644 --- a/packages/transformers/js/core/src/dependency_collector.rs +++ b/packages/transformers/js/core/src/dependency_collector.rs @@ -539,6 +539,19 @@ impl<'a> Fold for DependencyCollector<'a> { } let node = if let Some(arg) = node.args.get(0) { + let mut arg = arg.clone(); + + // convert require(`./name`) to require("./name") + if let ast::Expr::Tpl(_tpl) = &*arg.expr { + if _tpl.quasis.len() == 1 && _tpl.exprs.is_empty() { + let tpl_str = &_tpl.quasis[0].raw; + arg.expr = Box::new(ast::Expr::Lit(ast::Lit::Str(ast::Str { + value: tpl_str.clone().value, + ..tpl_str.clone() + }))); + } + } + if kind == DependencyKind::ServiceWorker || kind == DependencyKind::Worklet { let (source_type, opts) = if kind == DependencyKind::ServiceWorker { match_worker_type(node.args.get(1))