2016-11-11 34 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)。

相关问题