使用导入模块时,Tsconfig.js的exclude属性不起作用



我现在快疯了,为什么我的typescript编译(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"
 ]
}

但是当我编译时(直接在命令行中使用tsc或通过visual studio代码),我从node_modulesangular看到了无数的错误..

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

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

所以,看起来typescript编译器试图导入这些angular模块并编译…

我试图在tsconfig中使用——noResolve选项。Json,但是我的源文件抛出错误,他们找不到这些模块..

我有没有办法告诉typescript编译器不编译从文件夹xyz导入的模块?

最后,我的解决方案不是通过调整我的tsconfig。json文件,而是用新的——skipLibCheck标志来调用编译器(在TypeScript 2.0中添加-参见TypeScript wiki)

祝辞tsc - skipLibCheck

我还从我的tsconfig中删除了exclude属性。(作为排除"属性默认在未指定的情况下排除node_modules(参见typescript文档)。

相关内容

  • 没有找到相关文章

最新更新