我现在很疯狂为什么我的打字稿编译(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中不编译导入的模块?
答案 0 :(得分:0)
最后,我的解决方案不是通过调整我的tsconfig.json文件, 但要使用新的 - skipLibCheck 标志调用编译器(在TypeScript 2.0中添加 - 请参阅here in the typescript wiki)
> tsc --skipLibCheck
我还从tsconfig.json中删除了 exclude 属性(因为" 排除"属性默认为未指定时排除node_modules (参见typescript docs)。