簡體   English   中英

Visual Studio 2015-node_modules文件夾中* .d.ts文件的錯誤

[英]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>
  • 然后關閉並重新打開VS

添加了.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中看到的一些錯誤的示例:

在此處輸入圖片說明

當前項目配置為:

  • 編譯器(TSC)版本= 1.8
  • TypeScript版本= 2.6.2(通過npm安裝)
  • 沒有通過Visual Studio項目直接設置的TypeScript配置選項(即在.csproj文件中)

我完整的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM