tsc不排除node_modules

时间:2016-05-18 20:28:06

标签: typescript angular tsc

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}

我正在尝试将angular2 / beta8应用程序升级到RC1,而我是根据Quickstart指南进行基本重组。

我将其tsconfig.json复制到我的项目目录中。我想我已准备好其他所有内容,但是当我运行tsc时,我在node_modules文件夹中的文件中会出现各种错误。为什么它首先在那里寻找?

3 个答案:

答案 0 :(得分:6)

我不知道你是否找到了这个Alex的答案,但LDL评论中提到的question/answer提供了一个答案,由Srikanth Injarapu提交。

以下是答案,以防万一有人不想去那个链接:

  

如果您要定位ES5,请添加   " node_modules /打字稿/ LIB / lib.es6.d.ts"到tsconfig.json文件:

 {    
   "compilerOptions": {
     "module": "commonjs",
     "target": "es5",
     "noImplicitAny": false,
     "outDir": "built",
     "rootDir": ".",
     "sourceMap": false
   },
   "files": [
     "helloworld.ts",
     "node_modules/typescript/lib/lib.es6.d.ts"
   ],
   "exclude": [
     "node_modules"
   ]
 }

修改

在我的应用程序中,我使用webpack来构建我的应用程序,我仍然得到在控制台上吐出的相同错误。我目前正在寻找解决这个问题的方法,并会报告我发现的内容。

答案 1 :(得分:2)

tsconfig.json

中添加此选项
{
  "compilerOptions": {
    "skipLibCheck": true
  },
}

答案 2 :(得分:1)

对于任何使用webpack的人,添加“ exclude”属性对我来说不起作用。

相反,将所有文件扩展名添加到webpack的“ resolve”属性中,并将node_modules从所有有效的“ rules”对象中排除:

resolve: {
    extensions: ['*', '.ts', '.tsx', '.js']
},
module: {
     rules: [
            {
               test: /\.ts(x?)$/,
               exclude: /node_modules/,
               use: [
                    {
                        loader: "ts-loader"
                    }
               ]
             },
             // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
             {
                enforce: "pre",
                test: /\.js$/,
                exclude: /node_modules/,
                loader: "source-map-loader"
             },
           ]