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?
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.
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
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);
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.