[英]How to use libman instead of npm to download typescript definitions
當我使用npm安裝typescript定義時,我可以在作為Visual Studio構建的一部分的typescript文件中使用它們:
npm install @types/jQuery
添加npm install @types/jQuery
<TypeScriptCompile Include="wwwroot\\js\\site.ts" />
到.csproj。 $
global變量 但是,當我使用libman下載打字稿定義時,我很難配置typescript構建來使用它們。
我想我需要添加tsconfig.json,但它似乎干擾了csproj中的TypeScriptCompile。
wwwroot
js
site.d.ts
site.ts
lib
jquery
jquery.min.js
@types
jquery
index.d.ts
misc.d.ts
…
MyProject.csproj
libman.json
如何修改項目(.csproj,tsconfig.json)以便我將使用wwwroot \\ lib \\ @types中的定義文件和全局變量而不是node_modules / @ types?
我已經創建了tsconfig.json並設置了
"compilerOptions": {
"typeRoots": [ "wwwroot/lib/@types" ]
}
但現在構建在site.ts中返回錯誤,如“找不到名稱MyInterface”。 MyInterface在site.d.ts中定義。 為什么在沒有tsconfig.json時識別出類型,現在卻沒有? 我想避免添加///<reference>
注釋
我最終將site.d.ts重命名為global.d.ts(感謝@itminus回答 ),並在tsconfig中顯式設置popper.js模塊的路徑:
{
"compileOnSave": true,
"compilerOptions": {
"baseUrl": "./",
"paths": {
"popper.js": [ "wwwroot/lib/popper.js" ] //use this instead of wwwroot/lib/@types/popper.js which is incompatible
},
"typeRoots": [ "wwwroot/lib/@types" ]
},
"include": [ "wwwroot/js/**/*.ts" ]
}
popper.js是bootstrap 4的依賴。這有點棘手,因為@types/bootstrap
依賴於popper.js
而不是popper.js
@types/popper.js
(這是不兼容的,會在@ types / bootstrap / index中拋出@types/popper.js
錯誤。 d.ts);
幸運的是,popper.js包含typescript定義(index.d.ts),我只需告訴typescript編譯器在哪里查看它。
我想原因是你在同一個文件夾下有site.ts
和site.d.ts
因此,僅加載site.ts
文件。
解析過程總是優先於.d.ts上的.ts文件。 這里的理性是可以從.ts文件生成.d.ts文件,因此.ts文件是真實的更新版本
將您的site.d.ts
移動到其他文件夾,或將其重命名為site.global.d.ts
。 兩者都為我完美無瑕地工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.