reactjs - Kan ikke finne modulen 'react-bootstrap' med en modul annen enn commonjs


Jeg bruker React med Typescript, men kan ikke bruke React Bootstrap med en modul annen enn commonjs.

Jeg installerer først react-bootstrap-pakken:

npm i react-bootstrap

Og så skriv koden for å bruke det, for eksempel,

// src/index.tsx
import { Button } from 'react-bootstrap';

Men å kompilere det med npx tsc gir en feil Cannot find module 'react-bootstrap' or its corresponding type declarations. Når jeg søkte på Google om dette problemet, fant jeg ut at react-bootstrap har sine egne typer (så jeg trenger ikke @types/react-bootstrap).

Hvis jeg setter module i tsconfig.json til commonjs, kan jeg kompilere det riktig.

Hvorfor kan jeg imidlertid ikke bruke react-bootstrap? Finnes det andre måter å bruke React Bootstrap sammen med Typescript (og med moduler andre enn commonjs)?

Det minimale eksempelet her:

package.json:

{
  "name": "foo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "type": "npx tsc --noEmit",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "typescript": "^3.9.5"
  },
  "dependencies": {
    "react-bootstrap": "^1.0.1"
  }
}

tsconfig.json:

{
  "compilerOptions": {
    "target": "es2015",
    "module": "es2015",
    "skipLibCheck": true
  },
  "include": [
    "src/**/*"
  ]
}

src/index.tsx:

import { Button } from 'react-bootstrap';

Så løp

npm run type

> [email  type /home/bar/src/foo
> npx tsc --noEmit

src/index.tsx(1,24): error TS2307: Cannot find module 'react-bootstrap' or its corresponding type declarations.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email  type: `npx tsc --noEmit`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email  type script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/bar/.npm/_logs/2020-07-04T12_11_17_351Z-debug.log

Svar #1

  1. Rengjør npm-modulers cache ved å bruke $ npm cache clean --force
  2. Slett node_modules med $ rm -rf node_modules package-lock.json eller slett det manuelt
  3. Installer npm-moduler npm install

Dette fungerte for meg. Håper det fungerer for deg også.

Relaterte artikler