2015-11-24 78 views
1

我在Typescript中做了一個node.js項目,並且一些軟件包沒有內置的* .d.ts聲明文件,所以我去了DefinitelyTyped並獲取了文件和將它們添加到節點包中。問題是,當我執行npm更新時,文件被刪除:是否有方法可以在不刪除這些「非託管」文件的情況下更新節點包?npm非破壞性更新

回答

0

有沒有辦法讓我可以更新我的節點包而無需刪除這些「非託管」文件?

使用TSD + tsd.json來管理這些出node_modules的。

更多關於TSD:https://github.com/DefinitelyTyped/tsd

+0

我使用TSD的事情是,我已經把DefinitelyTyped文件在同一目錄作爲節點包(並在必要時,重命名文件DefinitelyTyped到匹配它正在模擬的文件的名稱) - thi這是因爲我不知道如何告訴我的程序模擬的JS文件在哪裏。如果我不這樣做,那麼當我運行該程序時,它不知道* .js文件是* .d.ts文件所指的位置。 – riqitang

+0

哦,從不知道我明白你的意思:https://github.com/DefinitelyTyped/tsd#link-to-bundled-definitions謝謝,我會嘗試,當我今晚回家 – riqitang

+0

Idk如果有一個錯誤,但是當我安裝請求它安裝依賴項,但不是實際的request.d.ts文件 – riqitang

0

您可以使用tsd工具下載打字稿定義的包,然後使用///<reference path="" />評論在您.ts文件的頂部引用它們是用來import命令。

打字稿1.6還支持最新的mechanism,這樣就可以發送pull請求,誰寫了一個JS包一個包維護者,如果她願意增加對打字稿支持,它可以制定出框,如果她調整package.json的:

的package.json

{ 
    "name": "foo", 
    "author": "Vandelay Industries", 
    "version": "1.0.0", 
    "main": "./lib/foo.js", 
    "typings": "./lib/foo.d.ts" 
}