tsc 不排除 node_modules

Posted

技术标签:

【中文标题】tsc 不排除 node_modules【英文标题】:tsc not excluding node_modules 【发布时间】:2016-09-15 12:35:09 【问题描述】:

  "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,并且我正在根据快速入门指南进行基本重组。

我将它的 tsconfig.json 复制到我的项目目录中。我想我已经准备好了所有其他东西,但是当我运行tsc 时,我的 node_modules 文件夹中的文件中出现了各种错误。为什么它甚至一开始就在那里寻找?

【问题讨论】:

***.com/questions/35382157/…的可能重复 TypeScript 的哪个版本?如果是1.6之前,那就升级吧。 @paleo, tsc -v 显示 1.8.10 【参考方案1】:

tsconfig.json

中添加此选项

  "compilerOptions": 
    "skipLibCheck": true
  ,

【讨论】:

【参考方案2】:

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

以下是答案,以防万一有人不想访问该链接:

如果您的目标是 ES5,请添加 "node_modules/typescript/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 来构建我的应用程序,但在控制台上仍然出现相同的错误。我目前正在寻找解决此问题的方法,并将报告我的发现。

【讨论】:

可以肯定的是,在 2019 年,解决方案是将 "lib": ["es6"], 添加到 compilerOptions 不,添加 "lib": ["es6"], 对我不起作用。不过,原来的答案确实如此。 对于 Webpack 4.43.0,您只需要:javascript "files": [ "src/index.ts", "node_modules/typescript/lib/lib.es6.d.ts" ] 其中 src/index.ts 是我的条目之一。【参考方案3】:

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

而是将所有文件扩展名添加到 webpack 的“resolve”属性并从任何有效的“规则”对象中排除 node_modules:

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"
             ,
           ]

【讨论】:

以上是关于tsc 不排除 node_modules的主要内容,如果未能解决你的问题,请参考以下文章

tsc - 不编译别名路径

tsc 不移动 html 资源

通过 TSC 的 VS Code TypeScript SourceMaps 不工作

Typescript:为啥 Visual Studio 代码不报告与命令行 tsc 相同的错误?

打字稿 tsc --declaration

TypeScript 通过 tsc 命令:输出到单个文件而不连接