2016-11-30 243 views
2

我不明白爲什麼找不到它。typescript:找不到模塊'react'

$ cat tsconfig.json 

{ 
    "compilerOptions": { 
    "sourceMap": true, 
    "target": "es6", 
    "jsx": "react", 
    "types": [ 
     "lodash", 
     "react", 
     "react-dom" 
    ] 
    } 
} 

$ tree node_modules/@types 

node_modules/@types/ 
├── lodash 
│   ├── README.md 
│   ├── index.d.ts 
│   ├── package.json 
│   └── types-metadata.json 
├── react 
│   ├── README.md 
│   ├── index.d.ts 
│   ├── package.json 
│   └── types-metadata.json 
└── react-dom 
    ├── README.md 
    ├── index.d.ts 
    ├── package.json 
    ├── server.d.ts 
    └── types-metadata.json 

導入組件文件。

// src/components/component.tsx 

import * as React from "react"; 

什麼給?

+0

你是如何導入反應的? –

+0

您是否嘗試過'導入React = require(「react」);'而不是? –

+3

使用'--traceResolution'運行的輸出會有幫助 –

回答

3

如果你不使用typescript 2.1,你應該升級到它。它看起來像你使用的是你在那裏的@types的2.x版本。

這裏是一個工作tsconfig.json文件,我現在使用:

{ 
    "compilerOptions": { 
    "target": "es6", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "noResolve": false, 
    "noImplicitAny": false, 
    "removeComments": true, 
    "sourceMap": true, 
    "allowJs": true, 
    "jsx": "react" 
    }, 
    "exclude": [ 
    "./node_modules/**/*" 
    ] 
} 

它已經有幾天,因爲我解決您遇到的同樣的問題,但我認爲這裏的關鍵是"moduleResolution": "node""allowJs": true

4

我有同樣的問題。你只需要安裝@types:

npm i -D @types/react 
1

隨着2.4版本*這個錯誤負責配置項(在大多數情況下)是:

"compilerOptions": { 
      ... 
      "moduleResolution": "node" <---------- this entry 
      ... 
} 

我希望它可以幫助別人!

-2
const React = require("react"); 

這解決了這個問題。

相關問題