2016-11-11 35 views
1

我現在瘋了,爲什麼我的打字稿編譯(tsc)總是試圖編譯node_modules文件,即使我已指定排除此文件夾。使用導入模塊時,tsconfig.js排除屬性不起作用

[tl; dr;那是因爲我有進口的,但我不知道如何排除]

我使用Visual Studio代碼編輯從進口,而是直接從命令行運行

TSC時

有同樣的問題我項目結構是一個典型的一個:

. 
| 
--node_modules\.. 
| 
--src\.. 
| 
--typings 

在我的根我有一個tsconfig.json有以下內容:

{ 
"compilerOptions": { 
    "module": "commonjs", 
    "target": "es5", 
    "noImplicitAny": false, 
    "sourceMap": false, 
    "watch": false 
}, 
"compileOnSave": true, 
"exclude": 
[ 
    "node_modules" 
] 
} 

但是我編譯時看到的錯誤數不勝數從\ node_modules \角(直接在命令行或通過Visual Studio代碼中使用TSC)..

現在,我做我的打字稿文件使用import語句(因爲我想用到底的WebPack):

import * as angular from 'angular'; 
import router from 'angular-ui-router'; 

所以,似乎打字稿編譯器試圖導入這些角模塊和編譯...

我試圖用--noResolve選項在tsconfig.json,但後來我的源文件拋出錯誤,他們無法找到這些模塊..

我有什麼辦法,我可以告訴打字稿編譯不能編譯從進口模塊文件夾xyz?

+0

你可以檢查你正在使用的TS版本,也許它不支持'exclude'? –

+0

@IlyaChernomordik是的,忘記提及,我做到了。我原本有1.5.8,然後升級到最新,現在有2.0.9 – AardVark71

+1

說實話,我從來沒有得到這個「排除」工作,並使用「包括」,而不是:)這通常是一個更好的選擇,如果你可以管理(不總是不幸) –

回答

0

最後,我的解決方案是無法通過調整我的tsconfig.json文件, 但調用新--skipLibCheck標誌編譯器(以打字稿2.0增加了 - 看到here in the typescript wiki

> TSC --skipLibCheck

我也去掉了排除財產從我tsconfig.json(爲「排除「如果未指定,屬性默認爲排除node_modules(請參閱typescript docs)。

相關問題