mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 10:59:13 +00:00
fix(cli): bundle command support shebang file (#17113)
This commit is contained in:
parent
7716449d41
commit
501472f06b
4 changed files with 39 additions and 2 deletions
|
@ -147,12 +147,29 @@ fn bundle_module_graph(
|
|||
}
|
||||
}
|
||||
|
||||
deno_emit::bundle_graph(
|
||||
let mut output = deno_emit::bundle_graph(
|
||||
graph,
|
||||
deno_emit::BundleOptions {
|
||||
bundle_type: deno_emit::BundleType::Module,
|
||||
emit_options: ts_config_result.ts_config.into(),
|
||||
emit_ignore_directives: true,
|
||||
},
|
||||
)
|
||||
)?;
|
||||
|
||||
// todo(https://github.com/denoland/deno_emit/issues/85): move to deno_emit
|
||||
if let Some(shebang) = shebang_file(graph) {
|
||||
output.code = format!("{}\n{}", shebang, output.code);
|
||||
}
|
||||
|
||||
Ok(output)
|
||||
}
|
||||
|
||||
fn shebang_file(graph: &deno_graph::ModuleGraph) -> Option<String> {
|
||||
let source = graph.get(&graph.roots[0].0)?.maybe_source.as_ref()?;
|
||||
let first_line = source.lines().next()?;
|
||||
if first_line.starts_with("#!") {
|
||||
Some(first_line.to_string())
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue