2

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

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

我正在使用 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_modules\angular.. 的大量错误。

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

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

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

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

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

4

1 回答 1

1

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

>tsc --skipLibCheck

我还从我的 tsconfig.json 中删除了exclude属性(因为“ exclude ”属性默认为在未指定时排除 node_modules (请参阅 typescript docs)。

于 2016-11-12T12:51:50.707 回答