javascript - babel-preset-react-app, importerer pakken "@babel/plugin-proposal-private-property-in-object" uten å erklære den i sine avhengigheter


Mitt problem er at jeg har prøvd å lage et nytt React-prosjekt, og etter mange problemer med sårbarheter, klarte jeg å løse noen av dem. En av hovedinstruksjonene var å legge til denne linjen:

"overrides": {
    "@svgr/webpack": "$@svgr/webpack"
  },

inn i min package.json-fil.

Når jeg hadde gjort det, måtte jeg slette mappen node_modules og gjenbruke npm install, og nå får jeg en Babel-feil etter å ha skrevet npm start.

One of your dependencies, babel-preset-react-app, is importing the
"@babel/plugin-proposal-private-property-in-object" package without
declaring it in its dependencies. This is currently working because
"@babel/plugin-proposal-private-property-in-object" is already in your
node_modules folder for unrelated reasons, but it may break at any time.

babel-preset-react-app is part of the create-react-app project, which is not maintained anymore. It is thus unlikely that this bug will
ever be fixed. Add "@babel/plugin-proposal-private-property-in-object" to
your devDependencies to work around this error. This will make this message
go away.

Jeg prøvde å søke etter løsningen på internett og jeg fant bare én som sier at jeg skal legge til denne pluginen i mine devDependencies, noe som ikke fungerte, og jeg fant også en løsning som sier å skrive CI= npm run build , noe som heller ikke fungerte.

Dette er det jeg møter når jeg skriver npm list @babel/plugin-proposal-private-property-in-object:

npm ERR! code ELSPROBLEMS
npm ERR! invalid: @babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2 C:\Users\Omri-PC\Desktop\KeeperApp\node_modules\@babel\plugin-proposal-private-property-in-object
[email  C:\Users\Omri-PC\Desktop\KeeperApp
├── @babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2 invalid: "^x.x.x" from the root project
└─┬ @svgr/[email  overridden
  └─┬ @babel/[email 
    └── @babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2 deduped invalid: "^x.x.x" from the root project

Og slik ser min package.json-fil ut hvis det på en eller annen måte hjelper å finne ut:

{
  "name": "keeper-app-part-1-starting",
  "version": "1.0.0",
  "description": "",
  "keywords": [],
  "main": "src/index.js",
  "dependencies": {
    "react": "18.2.0",
    "react-dom": "18.2.0"
  },
  "devDependencies": {
    "@svgr/webpack": "^8.0.1",
    "react-scripts": "5.0.1",
    "typescript": "5.1.3"
  },
  "overrides": {
    "@svgr/webpack": "$@svgr/webpack"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ]
}

Svar #1

Å kjøre kommandoen nedenfor løste problemet mitt

npm install --save-dev @babel/plugin-proposal-private-property-in-object

bruk --save-dev for å installere det under devDependencies

2024 oppdatering:

Pakken @babel/plugin-proposal-private-property-in-object er utdatert.

  1. Bruk npm install --save-dev @babel/plugin-transform-private-property-in-object i stedet.

  2. Referer pakken i din .eslintrc, f.eks.

{
  "extends": ["@babel/plugin-transform-private-property-in-object", "next/core-web-vitals"]
}

Svar #2

Takk til alle, til slutt var det dette som løste problemet mitt: npm install --save-dev @babel/plugin-proposal-private-property-in-object --legacy-peer-deps

Svar #3

2024-løsning

TL;DR: Gamle svar foreslår å installere en pakke (plugin-proposal...), men den ble omdøpt, og den mest oppdaterte løsningen er å bruke [babel/plugin-transform...] i stedet ved å oppdatere din package.JSON-fil.

Hvordan å...

Hvis du har dette (@babel/plugin-proposal-...) i din package.JSON:

  "devDependencies": {
    "@babel/plugin-proposal-private-property-in-object": "^7.16.7", // PROPOSAL 
    ...
  }

Bytt til dette (@babel/plugin-transform-...) - Eller installer hvis du ikke har noen

  "devDependencies": {
    "@babel/plugin-transform-private-property-in-object": "^7.23.4", // TRANSFORM 
    ...
  }

Mer informasjon kan finnes her i Babel/plugin-transform-dokumentasjonen:

Relaterte artikler