web-dev-qa-db-fra.com

BrowserslistError: Requête de navigateur inconnue `dead` dans React/Express App

Lorsque j'exécute 'npm start', l'application démarre correctement mais 'npm run build' me donne le message suivant sur le terminal:

> [email protected] build /Users/*******/mern-workout/client
> react-scripts build

Creating an optimized production build...
Failed to compile.

./src/Components/UI/Spinner/Spinner.module.css
Module build failed: BrowserslistError: Unknown browser query `dead`
    at Array.forEach (<anonymous>)


npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `react-scripts build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] build 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!     /Users/*******/.npm/_logs/2018-10-22T23_21_04_691Z-debug.log

J'ai cherché, mais les seules solutions semblent être pour les personnes utilisant Angular qui rencontrent des problèmes avec leur version Bootstrap. Je n'utilise pas Bootstrap dans mon application.

J'ai essayé de supprimer "pas mort" du tableau browserslist juste pour voir ce qui se passerait et j'ai eu ceci:

Creating an optimized production build...
Failed to compile.

Failed to minify the code from this file: 

    ./node_modules/query-string/index.js:8 

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `react-scripts build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] build 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!     /Users/******/.npm/_logs/2018-10-22T23_41_55_488Z-debug.log

Voici mon fichier package.json:

 {
  "name": "workout_tracker",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "axios": "^0.18.0",
    "browserslist": "^4.3.1",
    "cssnano": "^4.1.7",
    "firebase": "^5.3.0",
    "jw-paginate": "^1.0.2",
    "jw-react-pagination": "^1.0.7",
    "normalize.css": "^8.0.0",
    "query-string": "^6.2.0",
    "random-id": "0.0.2",
    "react": "^16.5.2",
    "react-dom": "^16.5.2",
    "react-headroom": "^2.2.2",
    "react-icons-kit": "^1.1.6",
    "react-redux": "^5.0.7",
    "react-router-dom": "^4.3.1",
    "react-scripts-cssmodules": "^1.1.10",
    "react-swipe-to-delete-component": "^0.3.4",
    "react-swipeout": "^1.1.1",
    "redux": "^4.0.0",
    "redux-thunk": "^2.3.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  },
  "devDependencies": {
    "css-loader": "^1.0.0",
    "redux-devtools-extension": "^2.13.5",
    "webpack": "^3.8.1"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ],
  "proxy": "http://localhost:4000"
}
2
QHafeez

La description "mort" vient dans les versions les plus récentes. En d'autres termes, "mort" n'est pas défini dans ../node_modules/autoprefixer-stylus/node_modules/browserslist/index.js.

Si vous ouvrez le fichier ../browserlist/index.js ci-dessus, vous verrez:

var QUERIES = [
  {
    regexp: /^last\s+(\d+)\s+major versions?$/i,
    select: function (context, versions) ...
  },
  ...,
]

Vous pouvez ajouter ce qui suit ici:

{
  regexp: /^dead$/i,
  select: function (context) {
    var dead = ['ie <= 10', 'ie_mob <= 10', 'bb <= 10', 'op_mob <= 12.1']
    return resolve(dead, context)
  }
}

Cela a bien fonctionné pour moi sans changer la version de la dépendance dans le paquet-json.lock

3
rdzcn

Cela arrive si vous avez un autre outil, qui utilise une très ancienne liste de navigation.

Appelez npm ls, trouvez qui utilise Browserslist <4 et ouvrez-le pour mettre à jour les dépendances.

0
Andrey Sitnik