javascript - projects.map nie je funkcia pre jest-cli
Píšem aplikáciu v Reacte a testujem ju pomocou Jestu. Avšak vždy, keď spustím príkaz jest z terminálu, vyskočí mi táto chyba.
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)
Vstúpil som do node_modules, aby som sa pozrel na riadok kódu, ktorý spôsobuje chybu, projects je reťazec aktuálnej cesty projektu.
Tu je moja konfigurácia jest v package.json
"jest": {
"transform": {
".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
},
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js"
]
}
Stretol sa niekto s touto chybou a vie, ako ju opraviť?
Odpoveď č. 1
Práve som narazil na rovnaký problém. Ak sa pozriete pozorne na svoj stack trace, všimnete si, že spúšťate dve rôzne konfigurácie Jest:
Globálne nainštalovaný jest:
...(/Users/DavidHu/.nvm/versions/node/v6.2.1/lib/node_modules/jest-cli/bin/jest.js:16:25)
Jest z projektu:
...(/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:172:28)
Pravdepodobne majú rôzne (a nekompatibilné) verzie. Ak odstránite Jest zo svojho projektu (alebo z globálneho node_modules), malo by to vyriešiť problém.
Odpoveď č. 2
Toto sa stane, ak aktualizujete jest vo vašom projekte, ale spustíte ho len pomocou jest z príkazového riadku (nie z node_modules).
Na opravu budete musieť aktualizovať svoj globálny jest:
npm install -g jest