![](/img/trans.png)
[英]Angular2.JS files with d.ts files WITHOUT npm Visual Studio 2015
[英]Visual Studio 2015 - errors on *.d.ts files in node_modules folder
我正在將一個項目從Angular JS升級到Angular4。TypeScript已在Angular JS項目中使用,轉換后,我在Visual Studio中遇到了針對第三方打字稿鍵入文件(* .d.ts)的數千個錯誤。 。 在實際的TypeScript文件的Visual Studio中,我也遇到了一些錯誤。
當我使用命令行TypeScript編譯器(tsc)時,TypeScript代碼可以成功編譯,因此我想防止對所有* .d.ts文件進行編譯檢查。
我已經審查了非常相似的問題的答案,這些問題提出了如何忽略這些錯誤的方法,但是這些錯誤都不適合我,並且大多數與VS 2017有關。
這是我嘗試禁用編譯檢查的方法:
在.csproj文件中添加了“ TypeScriptCompileBlocked”:
<PropertyGroup>
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
....
</PropertyGroup>
添加了.eslintignore文件
我已將.eslintignore文件添加到項目根目錄,並設置為忽略所有* .d.ts文件:
**/*.d.ts
**/node_modules/*
禁用ESLint
在“ VS工具”>“選項”下,我尋找了一個選項,但是在VS2015中沒有選擇
tsconfig.json-排除node_modules文件夾
"exclude": [
"./node_modules/*"
]
-- I've also tried --
"node_modules"
... and
"**/*.d.ts"
tsconfig.json-設置“ compileOnSave”:false
{
"compilerOptions": {
"compileOnSave": false
}
}
我也將以下內容添加到“ compilerOptions”:
"types": []
我還設置了其他各種compileOptions來忽略錯誤,盡管我看到的錯誤與以下內容無關:
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true,
"noStrictGenericChecks": true
我應該怎么做才能忽略* .d.ts文件? 這是我在文件node_modules \\ @angular \\ common \\ src \\ directives \\ ng_class.d.ts中看到的一些錯誤的示例:
當前項目配置為:
我完整的tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "ES2015",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [ "es2015", "dom" ],
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true,
"noStrictGenericChecks": true
},
"include": [ "**/*.ts" ],
"exclude": [
"node_modules"
]
}
(關於我用於模塊的值,這是MicroSoft文檔所說的):
定位“ ES5”或更低的值時,可以使用“ ES6”和“ ES2015”值。
https://www.typescriptlang.org/docs/handbook/compiler-options.html
我也嘗試使用“ commonjs”作為值
我發現我安裝的npm已安裝TypeScript是完全獨立的TypeScript安裝(我為安裝自動TypeScript編譯安裝了“節點安裝” grunt-ts,出於某種原因,grunt-ts需要此“已安裝節點” TypeScript)。 Visual Studio在嘗試編譯時未使用節點安裝的TypeScript,而是使用了專門為Visual Studio安裝的TypeScript 1.8編譯器。
要安裝供VS2015使用的TypeScript 2.6.2,我從這里安裝了它:
https://www.microsoft.com/en-us/download/details.aspx?id=48593
這將創建一個文件夾C:\\ Program Files(x86)\\ Microsoft SDKs \\ TypeScript \\ 2.6,其中包含一個tsc.exe。 然后,在我的.csproj文件中進行設置
<TypeScriptToolsVersion>2.6</TypeScriptToolsVersion>
並修復了所有錯誤。
為了建立項目,我還需要在項目中包含我的tsconfig.json文件(右鍵單擊>包含在項目中)。 這會導致Visual Studio忽略.csproj文件中的TypeScript配置,而改用tsconfig.json
我不得不卸載並重新加載項目幾次,之間進行保存,直到VS2015項目屬性被Visual Studio識別為已禁用。 關閉並重新打開Visual Studio,如果出現提示,則保存對項目的任何更改,可能會達到相同的效果:
因此,看起來沒有任何事情可以忽略d.ts文件的原因是因為Visual Studio無法正確解釋解決方案並無法產生預期的輸出。
可能有人解決了這個問題並創建了ADDIN? 遠射,但可以減輕您的痛苦...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.