2017-06-18 43 views
3

看起來好像TypeScript正在傳輸不可執行的目標文件。TypeScripts傳輸不可執行的文件

我必須在運行後運行chmod u+x <file>以使文件變爲可執行文件。

這樣的話,即使他們有一個hashbang:

#!/usr/bin/env node 

我怎麼能告訴打字稿/ TSC創建作爲可執行文件?

+0

我也喜歡配置打字稿,以使生成的.js文件不可寫也默認.... –

+0

嗨,@亞歷山大米爾斯。你可以提供你的動機使用打字稿編譯器更改文件的權利? – galkin

回答

3

更改文件的權限不是打字稿的責任。

解決方案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。我認爲,在你的情況下,這是過度工程。

+0

呵呵? tsc從字面上將文件寫出,.ts - > .js + .d.ts。它可以選擇使用什麼權限來寫入文件。這個構建步驟應該是不必要的。 –

+0

@AlexanderMills在構建期間修改權限有點不負責任,如果他們試圖在默認情況下保證安全。你可以爭辯說,他們可以默認做他們現在做的事情,併爲此提供一個選項,但是他們將不得不處理該代碼中存在錯誤的可能性。風險大於好處,尤其是當打字稿專注於一個非常具體的問題時,團隊自由地忽略了編輯器通常負責的其他特徵請求。 – Catalyst

+0

嗯,我真的需要TS來創建可執行但不可寫的.js文件。我不確定爲什麼TS不允許我們配置它。 –

相關問題