我现在快疯了,为什么我的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文档)。