2017-08-10 11 views
1

私は自分のtypescriptビルドでnode_modules(特にReact)を無視できないかどうか試してみました。私のtsconfig.jsonはフォルダを無視するように指示していますが、まだコンパイルされています。おそらく、インクルードされたファイル内のファイルによってインポートされている可能性がありますか?ここでtsconfig.jsonで除外されているにもかかわらず、インポートされたreact node_moduleのtypescriptコンパイルエラー

は、多くがあり、そのうちのエラーの例です:私のtsconfig.jsonはこのようになります

ERROR in /Users/rw3iss/Sites/site/src/project/public/node_modules/@types/react/index.d.ts 
(3606,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'feTile' must be of type 'SVGProps<SVGFETileElement>', but here has type 'SVGProps<SVGFETileElement>'. 

{ 
    "compilerOptions": { 
    "jsx": "react", 
    "target": "es6", 
    "module": "commonjs", 
    "noEmitOnError": true, 
    "noImplicitAny": false, 
    "experimentalDecorators": true, 
    "sourceMap": true, 
    "strictNullChecks": true, 
    "forceConsistentCasingInFileNames": true, 
    "noImplicitReturns": true, 
    "noImplicitThis": true, 
    "noFallthroughCasesInSwitch": true, 
    "allowJs": true, 
    "outDir": "build", 
    "noResolve": false, 
    "moduleResolution": "node", 
    "typeRoots": [ 
     "./node_modules/@types", 
     "./secure/node_modules/@types", 
     "./public/node_modules/@types" 
    ], 
    "types": [ "react" ] 
    }, 
    "filesGlob": [ 
    ], 
    "include": [ 
    "secure/src/**/*", 
    "public/react_src/**/*" 
    ], 
    "exclude": [ 
    "node_modules/**/*", 
    "public/node_modules/**/*", 
    "secure/node_modules/**/*", 
    "public/dist" 
    ], 
    "types": [ "react" ] 
} 

私はWebPACKの/ TSでそれをコンパイルしようとしていますローダー、私のwebpack設定は:

var webpack = require('webpack'); 
var path = require('path'); 

var BUILD_DIR = path.resolve(__dirname, 'build'); 
var APP_DIR = path.resolve(__dirname, 'src'); 

var config = { 

    entry: { 
     app: [ 
      APP_DIR + '/react_src/Secure.tsx', 
      APP_DIR + '/react_src/DicomViewer.tsx' 
     ] 
    }, 

    output: { 
     publicPath: '/', 
     path: BUILD_DIR, // 'dist' 
     filename: '[name].js', // 'index.js' 
     //libraryTarget: 'umd' 
    }, 

    resolve: { 
     extensions: ['.js', '.jsx', '.ts', '.tsx'], 
     modules: [ 'node_modules', 'src' ] 
    }, 

    module: { 
     rules: [ 
      { 
       test: /\.(t|j)sx?$/, 
       include: APP_DIR, 
       exclude: [ 
         path.resolve(__dirname, 'node_modules'), 
         '../public/node_modules', 
         '../node_modules' 
        ], 
       loader: ['ts-loader'] 
      } 
     ] 
    } 
}; 

module.exports = config; 

私はこれらのエラーが起こっている理由、インポートされたnode_modulesでポップアップする可能性のあるエラーやその他のエラーを回避しますか?

アップデート:私は[]に 'typeRoots' と設定 'タイプ' の下にあるすべてのものを削除

"typeRoots": [], 
"types": [] 

しかし、それはまだ同じエラーを投げています。私はちょうど理由を理解しようとしています...

答えて

0

私のtypescriptビルドでnode_modules(特にReact)を無視することはできません。私のtsconfig.jsonはフォルダを無視するように指示していますが、まだコンパイルされています。

エラーは@typesディレクトリの反応タイプの宣言に関連しています。 node_modulesを除外しても、@typesディレクトリがコンパイルに含まれています。ここで

さらにいくつかの、relevant information from the docsです:すべての可視「@types」パッケージは、あなたのコンパイルに含まれています... typesRootsが指定されている場合場合は、typeRootsでのみパッケージが...含まれますデフォルトでは

typesが指定されている場合、リストされたパッケージのみが含まれます。

tsconfigにはtypesプロパティが含まれており、[ "react" ]が指定されています。 typesプロパティを空の配列[]に変更すると、エラーが解決されることがあります。 typesは、compilerOptionsの下位に属していないことに注意してください。

も参照してください。https://github.com/Microsoft/TypeScript/issues/11257

+0

こんにちは。私はこれを試して、役に立たなかった。私はtypeRoots内のすべてを削除し、すべて一緒にタイプしましたが、それでも同じエラーが発生しています。私はこれを上記の説明に加えました。 –

関連する問題