web-dev-qa-db-ja.com

tscはnode_modulesを除外しません

{
  "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フォルダー内のファイル内にあらゆる種類のエラーが発生します。そもそもなぜそこを見ているのか。

15
Alex Kibler

このアレックスへの答えを見つけたかどうかはわかりませんが、LDLのコメントで言及されている 質問/回答 は、SrikanthInjarapuによって提出された回答を提供します。

誰かがそのリンクに行きたくない場合の答えは次のとおりです。

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を使用してアプリをビルドしていますが、コンソールに同じエラーが表示されます。私は現在これを修正することを検討しており、見つけたものを報告します。

6
Katana24

webpackを使用している人の場合、「exclude」プロパティを追加しても機能しませんでした。

代わりに、すべてのファイル拡張子を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"
             },
           ]
1
P Fuster