Projects.map не является функцией для jest-cli
Я пишу приложение для реагирования и тестирую его со шуткой. Однако всякий раз, когда я запускаю команду jest
с терминала, я сохраняю эту ошибку.
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)
Я пошел в node_modules
, чтобы посмотреть на строку кода, вызывающую ошибку, projects
- это строка текущего пути проекта.
Вот моя конфигурация jest в package.json
"jest": {
"transform": {
".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
},
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js"
]
}
Кто-нибудь столкнулся с этой ошибкой и знает, как ее исправить?
Ответы
Ответ 1
Просто столкнулся с той же проблемой. Если вы внимательно посмотрите на трассировку стека, вы заметите, что вы запускаете две разные настройки Jest:
Глобально установленная шутка:
...(/Users/DavidHu/.nvm/versions/node/v6.2.1/lib/node_modules/jest-cli/bin/jest.js:16:25)
Взгляд из проекта:
...(/Users/DavidHu/Desktop/coding/projects/swapnow/node_modules/jest-cli/build/cli/runCLI.js:172:28)
У них, вероятно, есть разные (и несовместимые) версии.
Если вы удалите шутки из своего проекта (или из глобального node_modules
), который должен решить проблему.
Ответ 2
Это произойдет, если вы обновите jest в своем проекте, но запустите его, используя только jest
из командной строки (не из node_modules).
Чтобы исправить это, вам нужно обновить глобальную шутку:
npm install -g jest
Ответ 3
У меня была такая же проблема. Я передавал строку в параметр "projects" вместо массива.
Обертка строки 'projectPath' в [] исправила ее для меня (она находится внутри задачи Gulp):
var jestCLI = require('jest-cli');
...
jestCLI.runCLI({'onlyChanged': true}, [projectPath], callback);
Ответ 4
Я столкнулся с той же проблемой с локальными и проектными установками jest-cli. Я удалил установку проекта jest-cli и решил проблему.