我有一個庫,我建立在TypeScript中。我想將這個庫包含在TypeScript和JavaScript Node項目中。這樣做的總體策略是什麼?我應該編譯並有兩個版本,還是應該使用其他策略?如何在NodeJS中公開TypeScript模塊?
回答
我想將這個庫包含在TypeScript和JavaScript Node項目中。這樣做的總體策略是什麼?
編譯如下,以獲得js
輸出:
--module commonjs --outDir ./dist
這應該由JS項目使您的項目消耗品。要通過TS項目使其消耗,您需要生成聲明文件。這可以通過使用https://github.com/SitePen/dts-generator有關詳細信息,請參閱使用來完成:https://github.com/SitePen/dts-generator#usage
注:對卸下的dts-generator
依賴討論:https://github.com/Microsoft/TypeScript/issues/2338
在大多數情況下,我看到你有一個/ dist /文件夾,其中編譯的JavaScript位於其中。
通常還有一個像yourfilename.min.js這樣的縮小版本 - 其餘的是在外部或在/ src /文件夾中,所以在外部只有license/readme.md,package.json,還有可能是Grunt/Gulp文件(這被認爲是禮貌的 - 如果你使用taskrunner - 包括一個Grunt/Gulp文件來編譯打字稿並在之後縮小.js文件,據我所知)
如果你想要爲了在TypeScript項目中保留TypeScript的優點,你顯然必須公開TypeScript版本的代碼,這樣TypeScript編譯器才能看到你的界面的TypeScript聲明。
但是,如果您希望人們能夠在純Javascript項目中使用您的庫(不將TypeScript編譯爲JS),那麼您必須提供具有簡潔的Javascript接口的版本,並且代碼的位置已經被編譯成普通的JS。
所以,如果你想要這兩個優點,那麼你必須提供兩個獨立的版本。普通的JS版本顯然可以是TypeScript的編譯版本(編譯成普通的JS)。
- 1. 如何在Typescript中聲明NodeJs模塊?
- 2. nodejs中的TypeScript模塊導入
- 3. 如何使用Typescript和NodeJS將模塊注入類中
- 4. TypeScript - NodeJS模塊的類型註釋
- 5. 如何公開nodeJS代碼
- 6. 如何在TypeScript中導入JavaScript模塊
- 7. 模塊中的公開課
- 8. 模塊中的公開課
- 9. 使用Webpack和Typescript將模塊公開到全局Window對象
- 10. TypeScript 1.4作爲構造函數公開的CommonJS模塊
- 11. ZeroRPC:如何公開一個模塊
- 12. 在Typescript&NodeJS中嘲笑模塊導出的最佳實踐
- 13. 如何在Meteor中使用NodeJS模塊?
- 14. 如何在PyV8中加載nodejs模塊?
- 15. TypeScript是否爲NodeJS模塊訪問提供了明確的公共API?
- 16. 在NodeJS模塊中使用模塊
- 17. 如何在RequireJS模塊中使用NodeJS全局模塊對象
- 18. 如何在Nodejs REPL中使用Typescript類?
- 19. 如何在Typescript中爲NPM聲明模塊公共類型定義
- 20. 如何在Python模塊中公開一個函數?
- 21. 如何擴展nodejs模塊
- 22. TypeScript模塊
- 23. 如何在nodejs&Typescript中重載貓鼬模型實例
- 24. 如何在windows7上安裝nodejs模塊?
- 25. 的Node.js - 函數公開中的模塊
- 26. 公開nodejs公用文件夾中的nodejs庫
- 27. 如何使用TypeScript加載System.js模塊?
- 28. 模塊加載如何使用TypeScript
- 29. 你如何使用TypeScript打字模塊?
- 30. 如何使用TypeScript加載dojo模塊