2015-06-09 84 views
0

我有一個庫,我建立在TypeScript中。我想將這個庫包含在TypeScript和JavaScript Node項目中。這樣做的總體策略是什麼?我應該編譯並有兩個版本,還是應該使用其他策略?如何在NodeJS中公開TypeScript模塊?

回答

2

我想將這個庫包含在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

0

在大多數情況下,我看到你有一個/ dist /文件夾,其中編譯的JavaScript位於其中。

通常還有一個像yourfilename.min.js這樣的縮小版本 - 其餘的是在外部或在/ src /文件夾中,所以在外部只有license/readme.md,package.json,還有可能是Grunt/Gulp文件(這被認爲是禮貌的 - 如果你使用taskrunner - 包括一個Grunt/Gulp文件來編譯打字稿並在之後縮小.js文件,據我所知)

0

如果你想要爲了在TypeScript項目中保留TypeScript的優點,你顯然必須公開TypeScript版本的代碼,這樣TypeScript編譯器才能看到你的界面的TypeScript聲明。

但是,如果您希望人們能夠在純Javascript項目中使用您的庫(不將TypeScript編譯爲JS),那麼您必須提供具有簡潔的Javascript接口的版本,並且代碼的位置已經被編譯成普通的JS。

所以,如果你想要這兩個優點,那麼你必須提供兩個獨立的版本。普通的JS版本顯然可以是TypeScript的編譯版本(編譯成普通的JS)。