我已經安裝了一個.d.ts文件(即,爲p2.js庫類型定義)作爲外部(非全局)typings
模塊使用下面的命令:如何防止TypeScript在輸出中包含.d.ts導入?
typings install p2=github:schteppe/p2.js/index.d.ts#9d56924
然後我用它就像我的打字稿代碼這樣的:
import * as p2 from 'p2';
此導入出現在編譯的JavaScript:
var p2 = require('p2');
但是,很明顯,我不知道需要它,因爲p2
外部模塊只包含類型定義,而不是實際的代碼。我然後運行在打字稿的輸出webpack
,也未能與
...Module not found: Error: Cannot resolve module 'p2'...
什麼是使用這個外部模塊,使打字稿和我的IDE(原子與原子打字稿插件)看到的定義正確的方式進行編譯,但沒有require
調用它包含在TypeScript輸出中?
整個問題是它是非全局(外部)鍵入,因此必須導入。 – interphx
啊,我看到,webpack支持配置外部。 你的情況,這將是 '的外部:[{ 「P2」:真 } ]' http://webpack.github.io/docs/configuration.html#externals。讓我知道如果它的作品,那麼我會更新原來的答案。 – Eldin
謝謝,這似乎工作。仍然覺得有點hacky(打字稿不包括在其輸出中的聲明,沒有理由包含對僅包含聲明的模塊的引用),但我理解爲什麼它以這種方式工作。如果沒有其他更清潔的解決方案會被提出,我會接受這個答案。 – interphx