node.js - node_modules/minimatch/dist/cjs/index"' har ingen eksportert medlem kalt 'IMinimatch'. Mente du 'Minimatch'?
Jeg har rimraf som en devDependency (v5.0.0). Når jeg prøver å kjøre et skript som bruker rimraf, får jeg denne feilen:
node_modules/@types/glob/index.d.ts:29:42 - error TS2694: Namespace '".../node_modules/minimatch/dist/cjs/index"' has no exported member 'IOptions'.
29 interface IOptions extends minimatch.IOptions {
~~~~~~~~
node_modules/@types/glob/index.d.ts:74:30 - error TS2724: '"...node_modules/minimatch/dist/cjs/index"' has no exported member named 'IMinimatch'. Did you mean 'Minimatch'?
74 minimatch: minimatch.IMinimatch;
~~~~~~~~~~
Found 2 errors in the same file, starting at: node_modules/@types/glob/index.d.ts:29
Jeg fjernet manuelt node_modules/@types/glob-mappen, og feilen er borte, rimraf fungerer perfekt. Problemet er at jeg ikke har glob eller minimatch eller typene deres som avhengigheter i prosjektet mitt, så jeg kan ikke fjerne avhengigheten for å løse problemet.
Dette er avhengighetene jeg har i min package.json:
"devDependencies": {
"@open-wc/building-rollup": "2.0.1",
"@open-wc/eslint-config": "7.0.0",
"@open-wc/testing": "3.1.3",
"@rollup/plugin-replace": "4.0.0",
"@typescript-eslint/eslint-plugin": "5.20.0",
"@typescript-eslint/parser": "5.20.0",
"@web/dev-server": "0.1.30",
"@web/test-runner": "0.13.27",
"@web/test-runner-puppeteer": "0.10.5",
"concurrently": "7.1.0",
"deepmerge": "4.2.2",
"eslint": "8.13.0",
"eslint-config-prettier": "8.5.0",
"husky": "7.0.4",
"lint-staged": "12.4.0",
"prettier": "2.6.2",
"rimraf": "5.0.0",
"rollup": "2.70.2",
"rollup-plugin-copy": "3.4.0",
"tslib": "2.3.1",
"typescript": "4.6.3"
}
Jeg vet ikke om det bare er rimraf som forårsaker problemet, eller om det kan være en annen.
Setter pris på svarene! :)
Svar #1
Jeg løste et lignende problem bare ved å tvinge til å overstyre glob og minimatch-pakken. Kanskje det ikke er den riktige løsningen, men jeg så mange nestede pakker som brukte forskjellige versjoner av minimatch og glob, så mitt første forsøk var å bruke de nyeste pakkene.
TRINN
1- Jeg la til på slutten av package.json det følgende
...
"overrides": {
"minimatch": "5.1.2",
"glob": "8.1.0"
},
...
2- Etter å ha lagt til i package.json, trenger jeg bare å beskjære:
npm prune
Valgfritt: Hvis det ikke fungerer, prøv å fjerne node_modules og package-lock.json
rm -rf node_modules; rm package-lock.json
og installer alle moduler/pakker på nytt
npm install
Her er hele eksemplet hvis du vil se hvor du skal legge til inne i din package.json:
{
"name": "foo",
"version": "0.0.0",
"dependencies": {
"express": "expressjs/express",
"mocha": "mochajs/mocha#4727d357ea",
"module": "user/repo#feature/branch"
},
"overrides": {
"minimatch": "5.1.2",
"glob": "8.1.0"
}
}
NPM-dokumentasjon
Svar #2
Hvis jeg måtte gjette, ser det ut til at en av avhengighetene dine har et problem med versjonen.
Jeg ville prøvd å slette package.json og installere på nytt.
Du kan også lese mer om ditt spesifikke problem her: https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/63967
REDIGER: Etter litt mer research fant jeg ut at @types-pakkene for disse spesifikke avhengighetene kan være årsaken til problemet. Prøv å fjerne dem.
