使用导入模块时,tsconfig.js排除属性不起作用

时间:2016-11-11 12:19:56

标签: typescript tsc tsconfig

我现在很疯狂为什么我的打字稿编译(tsc)总是试图编译node_modules文件,即使我已经指定要排除这个文件夹。

[ tl; dr; 这是因为我有导入,但我不知道如何从编译中排除导入]

我正在使用Visual Studio Code,但直接从命令行

运行tsc时会遇到同样的问题

我的项目结构是典型的:

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

在我的根目录中,我有一个 tsconfig.json ,内容如下:

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

但是当我编译(直接在命令行或通过visual studio代码使用tsc)时,我看到来自\ node_modules \ angular的大量错误..

现在,我在我的打字稿文件中使用import语句(因为我想在最后使用webpack):

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

因此,似乎打字稿编译器试图导入这些角度模块并编译...

我尝试在tsconfig.json中使用 - noResolve 选项,但是我的源文件会抛出错误,无法找到这些模块..

我有什么方法可以告诉打字稿编译器从文件夹xyz中不编译导入的模块?

1 个答案:

答案 0 :(得分:0)

最后,我的解决方案不是通过调整我的tsconfig.json文件, 但要使用新的 - skipLibCheck 标志调用编译器(在TypeScript 2.0中添加 - 请参阅here in the typescript wiki

  

> tsc --skipLibCheck

我还从tsconfig.json中删除了 exclude 属性(因为" 排除"属性默认为未指定时排除node_modules (参见typescript docs)。