看起来好像TypeScript正在传输不可执行的目标文件。TypeScripts传输不可执行的文件
我必须在运行后运行chmod u+x <file>
以使文件变为可执行文件。
这样的话,即使他们有一个hashbang:
#!/usr/bin/env node
我怎么能告诉打字稿/ TSC创建作为可执行文件?
看起来好像TypeScript正在传输不可执行的目标文件。TypeScripts传输不可执行的文件
我必须在运行后运行chmod u+x <file>
以使文件变为可执行文件。
这样的话,即使他们有一个hashbang:
#!/usr/bin/env node
我怎么能告诉打字稿/ TSC创建作为可执行文件?
更改文件的权限不是打字稿的责任。
解决方案1. 在package.json的构建过程中使用单独的步骤。例如:
{
"name": "temp",
"version": "1.0.0",
"scripts": {
"build": "tsc && chmod +x build/index.js"
},
"dependencies": {
"typescript": "^2.3.4"
}
}
解决方案2.
写TypeScript Language Service Plugin。我认为,在你的情况下,这是过度工程。
呵呵? tsc从字面上将文件写出,.ts - > .js + .d.ts。它可以选择使用什么权限来写入文件。这个构建步骤应该是不必要的。 –
@AlexanderMills在构建期间修改权限有点不负责任,如果他们试图在默认情况下保证安全。你可以争辩说,他们可以默认做他们现在做的事情,并为此提供一个选项,但是他们将不得不处理该代码中存在错误的可能性。风险大于好处,尤其是当打字稿专注于一个非常具体的问题时,团队自由地忽略了编辑器通常负责的其他特征请求。 – Catalyst
嗯,我真的需要TS来创建可执行但不可写的.js文件。我不确定为什么TS不允许我们配置它。 –
我也喜欢配置打字稿,以使生成的.js文件不可写也默认.... –
嗨,@亚历山大米尔斯。你可以提供你的动机使用打字稿编译器更改文件的权利? – galkin