通常在我刚放的 node 文件中

#!/usr/bin/env node 

并使其可执行,以创建可从bash终端运行的文件.但是,如果我在Typescript文件中这样做,编译器会说"error TS1001:Unexpected character"#",并拒绝编译它.那么,如何用Typescript生成shell可执行 node 文件呢?

推荐答案

你向微软报告这个漏洞是对的,而他们以wontfix关闭它是错的.

在修复之前,这里有一个解决方法.将以下内容粘贴到文本文件中,并将其另存为shebangify:

#!/usr/bin/env node
var fs = require('fs');
var path = process.argv[2];
var data = "#!/usr/bin/env node\n\n";
data += fs.readFileSync(path);
fs.writeFileSync(path, data);

(注意:为了保持这个答案的简洁性,上面的代码没有任何错误判断或其他改进,所以请使用this代替,风险自负.此外,有关文件前置的更多信息,请参阅this SO question.)

使用终端导航到文件目录并执行以下操作,使文件可执行:

$ chmod +x shebangify

一旦您创建了一个Typescript程序(例如,名为myscript.ts),希望将其编译并转换为shell脚本(例如,名为myscript),请在终端中沿以下几行执行一个序列:

$ tsc --out myscript myscript.ts ; ./shebangify myscript ; chmod +x myscript

Typescript相关问答推荐

类型脚本:类型是通用的,只能索引以供阅读.(2862)"

创建一个通用上下文,允许正确推断其中的子项

类型脚本如何将嵌套的通用类型展开为父通用类型

如何根据数据类型动态注入组件?

net::BER_RECTION_REUSED和Uncatch使用Axios和TanStack-Query useMutation时未捕获错误(DelivercMutation)

typescript抱怨值可以是未定义的,尽管类型没有定义

有没有可能使用redux工具包的中间件同时监听状态的变化和操作

类型{...}的TypeScript参数不能赋给类型为never的参数''

部分类型化非 struct 化对象参数

来自类型脚本中可选对象的关联联合类型

匿名静态类推断组成不正确推断

为什么在回调函数的参数中不使用类型保护?

如何在react组件中使用doctype和html标签?

如何在NX工作区项目.json中设置类似angular.json的两个项目构建配置?

TYPE FOR ARRAY,其中每个泛型元素是单独的键类型对,然后在该数组上循环

API文件夹内的工作员getAuth()帮助器返回:{UserID:空}

如何解决&Quot;类型不可分配给TypeScrip IF语句中的类型&Quot;?

如何在Next.js和Tailwind.css中更改悬停时的字体 colored颜色

如何正确键入泛型相对记录值类型?

断言同级为true或抛出错误的Typescript函数