web-dev-qa-db-fra.com

projects.map n'est pas une fonction de jest-cli

J'écris une application de réaction et la teste avec plaisanterie. Cependant, chaque fois que j'exécute la commande jest à partir du terminal, je conserve cette erreur.

TypeError: projects.map is not a function
    at Object.<anonymous> (/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:172:28)
    at next (native)
    at step (/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:18:30)
    at /Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:34:14
    at Object.<anonymous> (/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:15:12)
    at Object.module.exports [as runCLI] (/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:2 03:17)
    at Object.run (/Users/DavidHu/.nvm/versions/node/v6.2.1/lib/node_modules/jest-cli/build/cli/index.js:42:17)
    at Object.<anonymous> (/Users/DavidHu/.nvm/versions/node/v6.2.1/lib/node_modules/jest-cli/bin/jest.js:16:25)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)

Je suis allé dans node_modules pour examiner la ligne de code à l'origine de l'erreur, projects est une chaîne du chemin actuel du projet. 

Voici ma configuration de plaisanterie dans package.json

  "jest": {
    "transform": {
      ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js"
    ]
  }

Quelqu'un at-il rencontré cette erreur et sait comment le réparer?

18
davidhu2000

Je viens de rencontrer le même problème. Si vous examinez attentivement le suivi de votre pile, vous remarquerez que vous exécutez deux configurations Jest différentes:

Jest installé globalement:

...(/Users/DavidHu/.nvm/versions/node/v6.2.1/lib/node_modules/jest-cli/bin/jest.js:16:25)

Blague du projet:

...(/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:172:28)

Ils ont probablement des versions différentes (et incompatibles)… .. Si vous supprimez la plaisanterie de votre projet (ou du global node_modules), cela devrait résoudre le problème.

15
jafrog

Cela se produira si vous mettez à jour Jest dans votre projet mais que vous l'exécutez en utilisant uniquement jest à partir de la ligne de commande (et non à partir de node_modules).

Pour résoudre ce problème, vous devez mettre à jour votre blague globale:

npm install -g jest

7
Rick Hanlon II

J'ai eu le même problème. Je passais une chaîne au paramètre 'projects' au lieu d'un tableau.

Enrouler la chaîne 'projectPath' dans [] l'a corrigé pour moi (cela se trouve dans une tâche Gulp):

var jestCLI = require('jest-cli');
...
jestCLI.runCLI({'onlyChanged': true}, [projectPath], callback);
3
kromakollision

J'ai rencontré le même problème avec les installations locales et de projet de jest-cli. J'ai supprimé l'installation du projet jest-cli et résolu le problème.

0
Anuradha