2016-11-30 291 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"); 

这解决了这个问题。

相关问题