Не удается найти модуль response.ts (2307)

Я пытаюсь создать приложение для реагирования с помощью TypeScript. Я сделал пряжу create response-app (name) --use-pnp --typescript.

Линтер TS постоянно говорит, что не могу найти модуль response.ts (2307) Я пробовал добавить пряжу @ types / response, добавить пряжу, перезапустить VScode и т. Д.

import React, { Component } from 'react';
import './App.css';

interface IAppState {
}

interface IAppProps {
}

class App extends React.Component<IAppProps, IAppState> {
  constructor(props: IAppState) {
  super(props);
  this.state = {
  };
  }


  render() {
    return (
      <div className='App'>
        <h1>Image classification with ML5.js</h1>
      </div>
    );
  }
}

export default App;

мой package.json

{
  "name": "image-recognition",
  "version": "0.1.0",
  "private": true,
  "installConfig": {
    "pnp": true
  },
  "dependencies": {
    "@types/jest": "24.0.13",
    "@types/node": "12.0.2",
    "@types/react": "^16.8.17",
    "@types/react-dom": "^16.8.4",
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "react-scripts": "3.0.1",
    "typescript": "3.4.5"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

мой tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve"
  },
  "include": [
    "src"
  ]
}

Я пробовал добавить пряжу @ types / response, добавить пряжу, перезапустить VScode и т. Д.


person orjames    schedule 18.05.2019    source источник


Ответы (6)


Решение. Мне пришлось вручную изменить, какой редактор версии TS (VSC) должен использовать. Инструкции ниже (работа в январе 2021 г.).

В моем случае ошибка была вызвана тем, что Visual Studio Code использовал глобальную / стандартную версию TypeScript вместо рабочей области / проекта. Это было важно, потому что линтер / редактор не улавливал tsconfig.json, который определял, как модули должны быть разрешены.

Это была ошибка линтера в VSC:  Ошибка линтера: не удается найти модуль или соответствующие объявления типа.

В ответе здесь отсутствует модуль реакции, но в моем случае это был мой локальный модуль - тем не менее, код ошибки тот же, и это решение может помочь в некоторых случаях.

Чтобы изменить версию TS в коде Visual Studio, вы можете щелкнуть по версии внизу окна редактора (4.1.2 на скриншоте):

TypeScript React, версия 4.1.2 в окне редактора

Выберите вариант Выбрать версию TypeScript ...:

Выберите вариант Выбрать версию TypeScript ...

А затем выберите Использовать версию рабочей области:

Выберите вариант использования рабочей области

После этого ошибка исчезла.

Мой tsconfig.json для справки:

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "baseUrl": ".",
    "strictNullChecks": true,
    "noImplicitThis": true,
    "allowJs": true,
    "skipLibCheck": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve"
  },
  "include": [
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ]
}
person krinoid    schedule 22.01.2021

У меня была такая же проблема, потому что в vscode было установлено расширение Deno. Deno не понимает нод-модули. Отключение расширения решило мою проблему

person Nailuj29    schedule 24.07.2020

У меня была такая же проблема, и я нашел этот вопрос без ответа. Думал поделюсь своим решением. Может быть, у вас было то же самое. В противном случае, возможно, это могло бы помочь другим:

Для меня, как ни странно, это произошло из-за того, что я не установил реакцию должным образом, или она устарела или что-то в этом роде.

Чтобы исправить это в VS2019: (работает от имени администратора)

Меню: Инструменты-> Командная строка-> PowerShell.

npm install @types/react

(в отличие от вас) у меня также была проблема с отсутствующим файлом package.json, но у меня был package-lock.json. Я сделал резервную копию (zip) пакета package-lock.json, переименовал его в package.json и снова сделал npm install @types/react, и он начал разрешать зависимости.

У меня было несколько других сообщений об ошибках, например, "требуется одноранговый узел React @ ^ 16, но ни один не установлен" ... Я нашел еще один вопрос S / O, который решил остальное: [email protected] требуется одноранговый узел реакции @ ^ 15, но ничего не установлено. Вы должны сами установить одноранговые зависимости

Позже коллега заметил, что на самом деле существует файл package.json, но он находится в другой папке. Мне нужно было записать компакт-диск в эту папку и запустить npm install. Это был последний шаг, который все исправил.

person tgolisch    schedule 09.03.2020

Ошибка Cannot find module 'xxx'.ts(2307) указывает на то, что пакет xxx, указанный в вашем package.json файле, отсутствует в вашем node_modules каталоге или недоступен по другим причинам.

Чтобы устранить ошибку, смените каталог на корень вашего приложения в интерфейсе командной строки (CLI) и запустите npm install xxx.

... где xxx - имя отсутствующего пакета; в данном случае React.

Если это не удастся, вы можете перейти к PowerShell в командной строке раздела инструментов VS Code, чтобы выполнить то же самое.

person nyedidikeke    schedule 26.12.2020

Я знаю, что это для VS Code, но решение, в котором вы удаляете расширение Deno, работало для меня на IntelliJ

person Rizzle    schedule 04.05.2021

Я не уверен, но думаю, что вы можете использовать response только в .tsx файлах. Также первая строка должна быть

import * as React from "react";
import { Component } from 'react';
person Azi    schedule 10.07.2019