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
- Rengjør npm-modulers cache ved å bruke
$ npm cache clean --force - Slett node_modules med
$ rm -rf node_modules package-lock.jsoneller slett det manuelt - Installer npm-moduler
npm install
Dette fungerte for meg. Håper det fungerer for deg også.